A hozzád hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A Battlefield2, a World of Tanks, a The Sims4 és a Freedom Force néhány a Python segítségével fejlesztett több ezer csodálatos játék közül.

Tkinter, a Tk GUI eszközkészlet szabványos Python felülete, egy hatékony modul, amely egyszerűvé és szórakoztatóvá teszi a grafikus felhasználói felületek létrehozását. Használja ezt a modult egy észbontó színjáték fejlesztéséhez. Tanulja meg a modul használatát is.

Mi az a színjáték?

A Színjátékban a program megjeleníti egy szín nevét a képernyőn, de más betűszínnel. Például megjeleníti a szót Sárga piros betűszínt használva, és a játékosnak be kell írnia a szöveg színét.

Az információk és az időzítő közötti eltérés sok zavart okoz, és szórakoztató játékélményt teremt.

A Tkinter és véletlenszerű modul

A Színjáték felépítéséhez a tkinter modul és a véletlen modult. A Tkinter egy többplatformos, egyszerű és felhasználóbarát grafikus felület, amellyel gyorsan hozhat létre grafikus felhasználói felületeket.

instagram viewer

Van néhány hasznos eszköze, mint például a címke és bejegyzés widgetek, valamint az elrendezéskezelők, például a csomag, a rács és a hely. A rendelkezésre álló funkciók meglehetősen egyszerűek, így a kezdő programozók könnyedén tervezhetnek alkalmazásokat különösebb erőfeszítés nélkül. A tkinter telepítéséhez futtassa a következő parancsot a terminálban:

pip install tkinter

A véletlenszerű modul egy beépített könyvtár, amelynek segítségével véletlenszerű választásokat generálhat. Ezzel a modullal kézi krikettjátékokat fejleszthet, számkitalálós játékok, varázslatos nyolclabdás játékok, véletlenszerű jelszógenerátorok, és még sok más.

Hogyan készítsünk színes játékot Python használatával

A Color Game forráskódja elérhető a GitHub adattár és az MIT licence alapján ingyenesen használható.

Kezdje a tkinter és a random modul importálásával. Tárolja a színek nevét karakterláncok listájaként, és inicializálja a pontszám változó 0-ra és hátralevő idő 60-ra.

tól től tkinter import *
import véletlen

színek = ['Piros', 'Zöld', 'Kék', 'Fekete', 'Rózsaszín', 'Fehér', 'Lila', 'Sárga', 'Barna']
pontszám = 0
hátralévő idő = 60

Határozzon meg egy nevű függvényt kezdőjáték() az úgy veszi esemény bemeneti argumentumként. A funkció két feladatot hajt végre. Először is ellenőrzi, hogy a hátralevő idő egyenlő 60. Ha igen, akkor meghívja és végrehajtja a visszaszámlálás() funkció. Másodszor, a következő szín() funkció, amely véletlenszerűen keveri, és megjeleníti a színt és a pontszámot, amikor a játék folyamatban van.

defstartGame(esemény):
ha hátralévő idő == 60:
visszaszámlálás()
nextColor()

Határozzon meg egy nevű függvényt nextColor() és globálisan hivatkozzon a változókra. Ha a hátralévő idő nagyobb, mint 0, állítsa a fókuszt a beviteli mezőre a gombbal fókusz_készlet() metódus a bejegyzés címkéjén (változóban tárolva e) a kód második felében meghatározott.

Használja a kap() módszerrel lekérheti a bejegyzés aktuális szövegét karakterláncként, és kisbetűssé alakíthatja a kis- és nagybetűk közötti eltérés elkerülése érdekében. Ha ez megegyezik a képernyőn megjelenő színnel, növelje a pontszámot eggyel. Használja a töröl() funkciót a 0-tól a bejegyzés widget utolsó indexéig a tartalom törléséhez.

defkövetkezőSzín():
globális pontszám
globális hátralevő idő
ha hátralévő idő > 0:
e.focus_set()
ha e.get().lower() == színek[1].Alsó():
pontszám += 1
e.delete(0, VÉGE)

Használja a keverés() funkció a lista elemeinek átrendezéséhez, és a színcímke megjelenítéséhez a lista első színeként a szöveggel, a lista második színeként pedig a betűtípus színével. Használja a config() funkció bekapcsolva scoreLabel (ez az Enter megnyomását kéri), ​​hogy megjelenítse a pontszámot a játék közben.

 random.shuffle (színek)
label.config (fg=str (színek[1]), text=str (színek[0]))
scoreLabel.config (text="Pontszám: " + str (pontszám))

Határozzon meg egy nevű függvényt visszaszámlálás() amely a hátralévő idő változójára hivatkozik és eggyel csökkenti azt. Használja a config() funkció a timeLabel a hátralévő idő megjelenítéséhez a képernyőn és a után() funkció a visszahíváshoz visszaszámlálás funkció 1000 ezredmásodperces vagy egy másodperces késleltetés után.

defvisszaszámlálás():
globális hátralevő idő
ha hátralévő idő > 0:
hátralévő idő -= 1
timeLabel.config (text="Idő maradt: " + str (maradék_idő))
timeLabel.after(1000, visszaszámlálás)

Inicializálja a tkinter példányt, és jelenítse meg a gyökérablakot. Állítsa be az ablak címét, méreteit pixelben és háttérszínét.

gyökér = Tk()
root.title("Színes játék egy csavarral")
root.geometry("750x450")
root.configure (background='Narancs')

Használja a Címke widget, amely utasítja a játékost a játék utasításairól. Elfogadja azt a szülőablakot, amelybe elhelyezné. A szövegben fel kell tüntetni a betűtípust és -méretet, valamint a címke háttérszínét. Használja a csomag() funkció a címke widget blokkokba rendezéséhez, mielőtt a szülő widgetbe helyezné őket.

Hasonlóképpen határozza meg a pontszám címkét, amely utasítja a felhasználót, hogy nyomja meg Belép a játék megkezdéséhez, valamint egy időcímkét a hátralévő idő megjelenítéséhez. Győződjön meg arról, hogy az összes címke háttérszíne narancssárga, hogy beleolvadjanak a háttérbe. Határozzon meg egy üres címkét, amely a színneveket tartalmazza majd nextColor() funkció.

utasítások = Címke (gyökér, szöveg="A szó színét írd be, ne a szöveget ;)", font=("Arial", 24), bg="narancs")
utasítások.pack()
scoreLabel = Címke (gyökér, szöveg="Nyomja meg az Entert a kezdéshez", font=("Arial", 24), bg="narancs")
scoreLabel.pack()
timeLabel = Címke (gyökér, szöveg="Hátralevő idő: " + str (maradék_idő), font=("Arial", 24), bg="narancs")
timeLabel.pack()
label = Címke (gyökér, font=("Arial", 90), bg="narancs")

Ahogy korábban említettük, használja a beviteli widgetet a játékos válaszának rögzítéséhez. Egy fontos lépés, hogy az Enter billentyűt egy eseménnyel kötjük a tkinter ablakban, hogy amikor a lejátszó megnyomja, egy adott funkció végrehajtódjon.

Ennek eléréséhez át kell adni a kulcs és a kezdőjáték() paraméterként funkcionál a bind() funkció. Ezenkívül használja a csomag() és fókusz_készlet() módszerek a beviteli címke rendszerezésére és fókuszálására, miután megnyomta az Enter billentyűt.

e = Bejegyzés (font=20)
root.bind('', kezdje a játékot)
e.pack()
e.focus_set()

A mainloop() függvény arra utasítja a Pythont, hogy futtassa a tkinter eseményhurkot, és figyelje az eseményeket (például a gombnyomásokat), amíg be nem zárja az ablakot.

root.mainloop()

Tedd össze az összes kódot, és máris karnyújtásnyira van a színes játék egy csavarral.

Színes játék kimenete Python használatával

A Color Game program futtatásakor egy ablak jelenik meg a képernyőn. Az Enter megnyomásával megkezdődik a visszaszámlálás, és a játékosnak el kell kezdenie beírni a szó színét. Minden helyes válasz esetén a pontszám eggyel növekszik, és a végén megjelenik a végeredmény.

Játékok fejlesztése Python használatával

A Python egy fantasztikus nyelv a játékfejlesztéshez. A nyelv nem csak egyszerűen érthető és használható, de lehetővé teszi a játékfejlesztők számára, hogy minden tapasztalati szinten lenyűgöző játékvilágokat hozzanak létre, amelyek érdekesek és szórakoztatóak.

Ezenkívül az alkotók számos lehetőség közül választhatnak az ötletek életre keltésére, köszönhetően a piacon elérhető különféle játékfejlesztői platformoknak, mint például a PyGame vagy a Kivy.