Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Battlefield2, World of Tanks, The Sims4 a Freedom Force sú niektoré z tisícok úžasných hier, ktoré boli vyvinuté pomocou Pythonu.

Tkinter, štandardné rozhranie Pythonu k súprave nástrojov GUI Tk, je výkonný modul, vďaka ktorému je vytváranie grafických používateľských rozhraní jednoduché a zábavné. Využite tento modul na vývoj farebnej hry, ktorá dokáže vykrútiť myseľ. Zároveň sa naučte, ako modul používať.

Čo je to hra farieb?

V hre Color Game program zobrazuje názov farby na obrazovke, ale v inej farbe písma. Napríklad zobrazuje slovo žltá pomocou červenej farby písma a hráč musí zadať farbu textu.

Tento nesúlad informácií spolu s časovačom vytvára množstvo zmätku a vytvára zábavný herný zážitok.

Modul Tkinter a Random

Na zostavenie Farebnej hry budete používať tkinter modul a náhodný modul. Tkinter je multiplatformový, jednoduchý a užívateľsky prívetivý modul GUI, ktorý môžete použiť na rýchle vytváranie grafických používateľských rozhraní.

instagram viewer

Má niekoľko užitočných nástrojov, ako sú miniaplikácie štítkov a vstupov a správcov rozloženia, ako sú balenie, mriežka a miesto. Poskytnuté funkcie sú celkom jednoduché, vďaka čomu môžu nováčikovia programátori ľahko navrhovať aplikácie bez veľkého úsilia. Ak chcete nainštalovať tkinter do vášho systému, spustite nasledujúci príkaz v termináli:

pip nainštalovať tkinter

Náhodný modul je vstavaná knižnica, pomocou ktorej môžete generovať náhodné voľby. Pomocou tohto modulu môžete rozvíjať hry ručného kriketu, hry na hádanie čísiel, hry s magickými ôsmimi loptičkami, generátory náhodných hesiel, a mnoho ďalších.

Ako vytvoriť farebnú hru pomocou Pythonu

Zdrojový kód Color Game je dostupný v a úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Začnite importovaním tkinter a náhodného modulu. Uložte názov farieb ako zoznam reťazcov a inicializujte ho skóre premenná na 0 a zostávajúci čas do 60.

od tkinter importovať *
importovať náhodný

farby = ['červená', 'Zelená', 'Modrá', 'Čierna', 'Ružová', 'Biely', 'Fialová', 'Žltá', 'hnedá']
skóre = 0
zostávajúci_čas = 60

Definujte funkciu s názvom beginGame() to trvá udalosť ako vstupný argument. Funkcia vykonáva dve úlohy. Najprv skontroluje, či zostávajúci čas rovná sa 60. Ak áno, zavolá a vykoná odpočítavanie () funkciu. Po druhé, volá sa ďalšia farba() funkcia, ktorá náhodne zamieša a zobrazí farbu a skóre, keď hra prebieha.

defzačaťHru(udalosť):
ak zostávajúci_čas == 60:
odpočítavanie ()
dalsia farba()

Definujte funkciu s názvom dalsia farba() a odkazovať na premenné globálne. Ak je zostávajúci čas väčší ako 0, nastavte zaostrenie na vstupné pole pomocou tlačidla focus_set() metóda na vstupnom štítku (uložená v premennej e) definovaná v neskoršej polovici kódu.

Použi dostať () metóda na získanie aktuálneho textu položky ako reťazca a jeho premena na malé písmená, aby sa predišlo nesúladu veľkých a malých písmen. Ak sa to rovná farbe zobrazenej na obrazovke, zvýšte skóre o jeden. Použi vymazať () od 0 po posledný index na miniaplikácii záznamu na vymazanie obsahu.

defnextFarba():
globálne skóre
globálne zostávajúci čas
ak zostávajúci_čas > 0:
e.focus_set()
ak e.get().lower() == farby[1].lower():
skóre += 1
e.delete(0, KONIEC)

Použi zamiešať () funkcia na zmenu poradia položiek v zozname a zobrazenie farebného štítku s textom ako prvej farby v zozname a farbou písma ako druhou farbou v zozname. Použi config() funkcia zapnutá scoreLabel (ktorá vyžaduje stlačenie klávesu Enter), aby sa počas hry zobrazilo skóre.

 náhodné.premiešať (farby)
label.config (fg=str (farby[1]), text=str (farby[0]))
scoreLabel.config (text="Skóre: " + str (skóre))

Definujte funkciu s názvom odpočítavanie () ktorý odkazuje na premennú zostávajúceho času a znižuje ju o jednu. Použi config() funkcia na timeLabel na zobrazenie zostávajúceho času na obrazovke a po () funkciu spätného volania odpočítavanie funkciu po oneskorení 1000 milisekúnd alebo jednej sekundy.

defodpočítavanie():
globálne zostávajúci čas
ak zostávajúci_čas > 0:
zostávajúci_čas -= 1
timeLabel.config (text="Zostávajúci čas: " + str (zostávajúci_čas))
timeLabel.after(1000, odpočítavanie)

Inicializujte inštanciu tkinter a zobrazte koreňové okno. Nastavte nadpis, rozmery v pixeloch a farbu pozadia okna.

koreň = Tk()
root.title("Hra s farbami s krútením")
root.geometry("750 x 450")
root.configure (pozadie='oranžová')

Použi Označenie miniaplikáciu, ktorá hráča poučí o inštrukciách hry. Prijíma rodičovské okno, do ktorého by ste ho umiestnili. Text by mal zobrazovať typ a veľkosť písma spolu s farbou pozadia štítku. Použi balenie() funkcia na usporiadanie miniaplikácie štítkov do blokov pred ich umiestnením do rodičovskej miniaplikácie.

Podobne definujte štítok skóre, ktorý používateľovi prikáže stlačiť Zadajte na spustenie hry, ako aj časový štítok na zobrazenie zostávajúceho času. Uistite sa, že všetky štítky majú oranžovú farbu pozadia, aby splynuli s pozadím. Definujte prázdny štítok, ktorý bude obsahovať názvy farieb v dalsia farba() funkciu.

inštrukcie = Označenie (koreň, text ="Napíš farbu slova, nie textu ;)", font=('Arial', 24), bg="oranžový")
inštrukcie.pack()
scoreLabel = Označenie (koreň, text="Začnite stlačením klávesu Enter", font=('Arial', 24), bg="oranžový")
scoreLabel.pack()
timeLabel = Označenie (koreň, text="Zostávajúci čas: " + str (zostávajúci_čas), font=('Arial', 24), bg="oranžový")
timeLabel.pack()
štítok = Štítok (koreň, písmo=('Arial', 90), bg="oranžový")

Ako už bolo spomenuté, na zachytenie odpovede hráča použite miniaplikáciu vstupu. Dôležitým krokom je spojenie klávesu Enter s udalosťou v okne tkinter, takže keď ho hráč stlačí, vykoná sa konkrétna funkcia.

Aby ste to dosiahli, absolvujete kľúč a beginGame() fungujú ako parametre k bind() funkciu. Okrem toho použite balenie() a focus_set() metódy na usporiadanie a nastavenie zamerania na vstupný štítok po stlačení klávesu Enter.

e = Vstup (font=20)
root.bind('', začať hru)
e.pack()
e.focus_set()

The mainloop() funkcia hovorí Pythonu, aby spustil slučku udalostí tkinter a počúval udalosti (ako sú stlačenia tlačidiel), kým nezatvoríte okno.

root.mainloop()

Poskladajte všetky kódy a máte hru Color Game s twistom pripravenú na hranie na dosah ruky.

Výstup farebnej hry pomocou Pythonu

Po spustení programu Color Game sa na obrazovke zobrazí okno. Po stlačení Enter sa začne odpočítavanie a hráč musí začať písať farbu slova. Za každú správnu odpoveď sa skóre zvýši o jednu a nakoniec sa zobrazí konečné skóre.

Vývoj hier pomocou Pythonu

Python je fantastický jazyk na vývoj hier. Jazyk je nielen jednoduchý na porozumenie a používanie, ale tiež umožňuje vývojárom hier všetkých úrovní skúseností vytvárať úžasné herné svety, ktoré sú zaujímavé a zábavné.

Okrem toho majú tvorcovia širokú škálu možností, ako uviesť nápady do života, a to vďaka rôznym platformám na vývoj hier dostupným na trhu, ako sú PyGame alebo Kivy.