Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Battlefield2, World of Tanks, The Sims4 i Freedom Force samo su neke od tisuća nevjerojatnih igara koje su razvijene pomoću Pythona.

Tkinter, standardno Python sučelje za Tk GUI toolkit, snažan je modul koji stvaranje grafičkih korisničkih sučelja čini lakim i zabavnim. Upotrijebite ovaj modul za razvoj zastrašujuće igre boja. Usput naučite i kako koristiti modul.

Što je igra boja?

U igri boja, program prikazuje naziv boje na ekranu, ali u drugoj boji fonta. Na primjer, prikazuje riječ Žuta boja koristeći crvenu boju fonta i igrač mora upisati boju teksta.

Ova neusklađenost informacija zajedno s mjeračem vremena stvara mnoštvo zabune i stvara zabavno iskustvo igranja.

Tkinter i Random modul

Da biste izgradili igru ​​boja, upotrijebit ćete tkinter modul i slučajan modul. Tkinter je višeplatformski, jednostavan i user-friendly GUI modul koji možete koristiti za brzu izradu grafičkih korisničkih sučelja.

instagram viewer

Ima neke korisne alate kao što su widgeti za naljepnice i unose i upravitelje izgleda kao što su paket, mreža i mjesto. Ponuđene funkcije prilično su jednostavne što programerima početnicima olakšava dizajn aplikacija bez puno truda. Da biste instalirali tkinter u svoj sustav, pokrenite sljedeću naredbu u terminalu:

pip instaliraj tkinter

Slučajni modul je ugrađena biblioteka pomoću koje možete generirati slučajne odabire. Koristeći ovaj modul, možete razviti igre kriketa, igre pogađanja brojeva, čarobne igre s osam loptica, generatori slučajnih lozinki, i još mnogo toga.

Kako izgraditi igru ​​boja koristeći Python

Izvorni kod Igre boja dostupan je u a GitHub spremište i besplatan je za korištenje pod MIT licencom.

Počnite s uvozom tkinter-a i nasumičnog modula. Pohranite nazive boja kao popis nizova i inicijalizirajte postići varijabla na 0 i Preostalo vrijeme do 60.

iz tkinter uvoz *
uvoz slučajan

boje = ['Crvena', 'zeleno', 'Plava', 'Crno', 'Ružičasta', 'Bijelo', 'Ljubičasta', 'Žuta boja', 'smeđa']
rezultat = 0
preostalo_vrijeme = 60

Definirajte funkciju pod nazivom započeti igru() koji traje događaj kao ulazni argument. Funkcija izvršava dva zadatka. Prvo se provjerava je li Preostalo vrijeme jednako 60. Ako da, poziva i izvršava odbrojavanje() funkcija. Drugo, poziva sljedeća boja() funkcija koja nasumično miješa i prikazuje boju i rezultat dok je igra u tijeku.

defzapočetiIgru(događaj):
ako vrijeme_preostalo == 60:
odbrojavanje()
sljedećaBoja()

Definirajte funkciju pod nazivom sljedećaBoja() i referencirati varijable globalno. Ako je preostalo vrijeme veće od 0, postavite fokus na polje za unos pomoću fokus_set() metoda na oznaci unosa (pohranjena u varijabli e) definiran u kasnijoj polovici koda.

Koristiti dobiti() metoda za dohvaćanje trenutnog teksta unosa kao niza i pretvaranje u mala slova kako bi se izbjeglo nepodudaranje velikih i malih slova. Ako je to jednako boji prikazanoj na ekranu, povećajte rezultat za jedan. Koristiti izbrisati() funkciju od 0 do posljednjeg indeksa na widgetu unosa za brisanje sadržaja.

defnextColour():
globalno postići
globalno Preostalo vrijeme
ako preostalo_vrijeme > 0:
e.focus_set()
ako e.get().lower() == boje[1].niži():
rezultat += 1
e.delete(0, KRAJ)

Koristiti miješanje () funkcija za promjenu redoslijeda stavki na popisu i prikaz oznake boje s tekstom kao prvom bojom na popisu i bojom fonta kao drugom bojom na popisu. Koristiti config() funkcija uključena scoreLabel (koji traži da pritisnete Enter) za prikaz rezultata dok je igra u sesiji.

 random.suffle (boje)
label.config (fg=str (boje[1]), text=str (boje[0]))
scoreLabel.config (tekst="Rezultat: " + str (rezultat))

Definirajte funkciju pod nazivom odbrojavanje() koji upućuje na varijablu preostalog vremena i smanjuje je za jedan. Koristiti config() funkcija na timeLabel za prikaz preostalog vremena na ekranu i nakon() funkcija za povratni poziv odbrojavanje funkcionirati nakon odgode od 1000 milisekundi ili jedne sekunde.

defodbrojavanje():
globalno Preostalo vrijeme
ako preostalo_vrijeme > 0:
preostalo_vrijeme -= 1
timeLabel.config (tekst="Preostalo vrijeme: " + str (preostalo_vrijeme))
timeLabel.after(1000, odbrojavanje)

Inicijalizirajte instancu tkinter i prikažite korijenski prozor. Postavite naslov, dimenzije u pikselima i boju pozadine prozora.

korijen = Tk()
root.title("Igra boja s pomakom")
root.geometry("750x450")
root.configure (background='Naranča')

Koristiti Označiti widget za upute igraču o uputama za igru. Prihvaća nadređeni prozor u koji biste ga smjestili. Tekst bi trebao prikazivati ​​vrstu i veličinu fonta zajedno s bojom pozadine naljepnice. Koristiti paket() funkciju za organiziranje widgeta oznake u blokove prije nego što ih smjestite u nadređeni widget.

Slično, definirajte oznaku rezultata kako biste uputili korisnika da pritisne Unesi za početak igre kao i vremensku oznaku za prikaz preostalog vremena. Pazite da sve oznake imaju narančastu pozadinu kako bi se stopile s pozadinom. Definirajte praznu oznaku koja će sadržavati nazive boja u sljedećaBoja() funkcija.

upute = Oznaka (korijen, tekst="Upišite boju riječi, a ne teksta ;)", font=('Arial', 24), bg="naranča")
upute.pack()
scoreLabel = Oznaka (korijen, tekst="Pritisnite Enter za početak", font=('Arial', 24), bg="naranča")
scoreLabel.pack()
timeLabel = Oznaka (korijen, tekst="Preostalo vrijeme: " + str (time_remaining), font=('Arial', 24), bg="naranča")
timeLabel.pack()
oznaka = Oznaka (korijen, font=('Arial', 90), bg="naranča")

Kao što je ranije spomenuto, koristite widget za unos kako biste zabilježili igračev odgovor. Važan korak je vezanje tipke Enter s događajem u prozoru tkintera tako da kada je igrač pritisne, određena funkcija bi se izvršila.

Da biste to postigli, prođite ključ i započeti igru() funkcioniraju kao parametri za vezati() funkcija. Osim toga, koristite paket() i fokus_set() metode organiziranja i postavljanja fokusa na oznaku unosa nakon što pritisnete tipku Enter.

e = Unos (font=20)
root.bind('', započni igru)
e.pack()
e.focus_set()

The glavna petlja() funkcija govori Pythonu da pokrene petlju događaja tkinter i osluškuje događaje (kao što su pritisci gumba) dok ne zatvorite prozor.

root.mainloop()

Sastavite sav kod i na dohvat ruke imate igru ​​boja s dodatkom spremnu za igranje.

Izlaz igre boja pomoću Pythona

Prilikom pokretanja programa Color Game, na zaslonu se pojavljuje prozor. Pritiskom na Enter počinje odbrojavanje, a igrač mora početi upisivati ​​boju riječi. Za svaki točan odgovor rezultat se povećava za jedan i na kraju prikazuje konačni rezultat.

Razvoj igara pomoću Pythona

Python je fantastičan jezik za razvoj igara. Jezik nije samo jednostavan za razumijevanje i korištenje, već također omogućuje razvojnim programerima igara svih razina iskustva da stvore zapanjujuće svijetove igara koji su zanimljivi i zabavni.

Osim toga, kreatori imaju široku lepezu mogućnosti kada je u pitanju oživljavanje ideja, zahvaljujući raznim platformama za razvoj igara dostupnim na tržištu, kao što su PyGame ili Kivy.