„Battlefield2“, „World of Tanks“, „The Sims4“ ir „Freedom Force“ yra keletas iš tūkstančių nuostabių žaidimų, sukurtų naudojant Python.
Tkinteris, standartinė Python sąsaja su Tk GUI įrankių rinkiniu, yra galingas modulis, leidžiantis lengvai ir smagiai kurti grafines vartotojo sąsajas. Pasinaudokite šiuo moduliu, kad sukurtumėte mintis verčiantį spalvų žaidimą. Taip pat išmokite naudotis moduliu.
Kas yra spalvų žaidimas?
Spalvų žaidime programa ekrane rodo spalvos pavadinimą, bet kitokia šrifto spalva. Pavyzdžiui, rodomas žodis Geltona naudojant raudoną šrifto spalvą ir žaidėjas turi įvesti teksto spalvą.
Šis informacijos ir laikmačio neatitikimas sukelia daug painiavos ir sukuria linksmą žaidimo patirtį.
Tkinteris ir atsitiktinis modulis
Norėdami sukurti spalvų žaidimą, naudosite tkinteris modulis ir atsitiktinis modulis. Tkinter yra kelių platformų, paprastas ir patogus grafinis vartotojo sąsajos modulis, kurį galite naudoti norėdami greitai sukurti grafines vartotojo sąsajas.
Jame yra keletas naudingų įrankių, pvz., etikečių ir įrašų valdikliai bei išdėstymo tvarkyklės, pvz., pakuotė, tinklelis ir vieta. Pateiktos funkcijos yra gana paprastos, todėl pradedantiesiems programuotojams lengva kurti programas be didelių pastangų. Norėdami įdiegti tkinter savo sistemoje, terminale paleiskite šią komandą:
pip įdiegti tkinter
Atsitiktinis modulis yra integruota biblioteka, kurią naudodami galite generuoti atsitiktinius pasirinkimus. Naudojant šį modulį, galite kurti rankinius kriketo žaidimus, skaičių atspėjimo žaidimai, stebuklingi aštuonių kamuoliukų žaidimai, atsitiktinių slaptažodžių generatoriai, ir daug daugiau.
Kaip sukurti spalvų žaidimą naudojant Python
Spalvų žaidimo šaltinio kodas yra a GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.
Pradėkite importuodami tkinter ir atsitiktinį modulį. Išsaugokite spalvų pavadinimus kaip eilučių sąrašą ir inicijuokite balas kintamasis iki 0 ir likęs laikas iki 60.
iš tkinteris importuoti *
importuoti atsitiktinis
spalvos = ['raudona', 'Žalias', 'mėlyna', 'juoda', 'Rožinis', 'balta', 'Violetinė', 'Geltona', 'ruda']
rezultatas = 0
laikas_likęs = 60
Apibrėžkite funkciją pavadintą startGame () kad trunka įvykis kaip įvesties argumentas. Funkcija atlieka dvi užduotis. Pirmiausia patikrinama, ar likęs laikas lygus 60. Jei taip, jis iškviečia ir vykdo atgalinis skaičiavimas () funkcija. Antra, ji vadina kita spalva () funkcija, kuri atsitiktinai sumaišo ir rodo spalvą bei rezultatą, kai žaidimas vyksta.
defpradėti žaidimą(įvykis):
jeigu laikas_likęs == 60:
atgalinis skaičiavimas ()
kita spalva ()
Apibrėžkite funkciją pavadintą kita spalva () ir nurodyti kintamuosius visame pasaulyje. Jei likęs laikas yra didesnis nei 0, fokusuokite įvesties lauką naudodami focus_set() metodas įrašo etiketėje (saugomas kintamajame e) apibrėžta vėlesnėje kodo pusėje.
Naudoti gauti () būdas gauti dabartinį įrašo tekstą kaip eilutę ir paversti jį mažosiomis raidėmis, kad būtų išvengta didžiųjų ir mažųjų raidžių neatitikimo. Jei tai lygi ekrane rodomai spalvai, padidinkite balą vienu. Naudoti Ištrinti() funkcija nuo 0 iki paskutinės įvesties valdiklio rodyklės, kad išvalytumėte turinį.
defkita spalva():
globalus balas
globalus likęs laikas
jeigu laikas_likęs > 0:
e.focus_set()
jeigu e.get().lower() == spalvos[1].žemesnis():
rezultatas += 1
e.delete(0, GALAS)
Naudoti shuffle () funkcija pertvarkyti elementus sąraše ir rodyti spalvų etiketę su tekstu kaip pirmąja sąrašo spalva ir šrifto spalva kaip antrąja sąrašo spalva. Naudoti config () funkcija įjungta scoreLabel (prašo paspausti Enter), kad būtų rodomas rezultatas žaidimo seanso metu.
random.shuffle (spalvos)
label.config (fg=str (spalvos[1]), text=str (spalvos[0]))
scoreLabel.config (text="Taškas:" + str (balas))
Apibrėžkite funkciją pavadintą atgalinis skaičiavimas () kuri nurodo likusį laiko kintamąjį ir sumažina jį vienu. Naudoti config () funkcija ant laiko etiketė kad ekrane būtų rodomas likęs laikas ir po () funkcija perskambinti atgalinis skaičiavimas funkcija po 1000 milisekundžių arba vienos sekundės uždelsimo.
defatgalinis skaičiavimas():
globalus likęs laikas
jeigu laikas_likęs > 0:
laikas_likęs -= 1
timeLabel.config (text="Likęs laikas: " + str (likęs_laikas))
timeLabel.after(1000, atgalinis skaičiavimas)
Inicijuokite tkinter egzempliorių ir parodykite šakninį langą. Nustatykite lango pavadinimą, matmenis pikseliais ir fono spalvą.
šaknis = Tk()
root.title(„Spalvų žaidimas su posūkiu“)
root.geometry("750x450")
root.configure (background='oranžinė')
Naudoti Etiketė valdiklis, skirtas žaidėjui informuoti apie žaidimo instrukcijas. Jis priima pirminį langą, kuriame jį įdėtumėte. Tekste turi būti nurodytas šrifto tipas ir dydis bei etiketės fono spalva. Naudoti paketas() funkcija suskirstyti etiketės valdiklį į blokus prieš įdėdami juos į pagrindinį valdiklį.
Panašiai apibrėžkite balo etiketę, kad nurodytumėte vartotojui paspausti Įeikite Norėdami pradėti žaidimą, taip pat laiko etiketė, rodanti likusį laiką. Įsitikinkite, kad visos etiketės turi oranžinę fono spalvą, kad jos susilietų su fonu. Apibrėžkite tuščią etiketę, kurioje bus spalvų pavadinimai kita spalva () funkcija.
instrukcijos = Etiketė (šaknis, tekstas="Įveskite žodžio spalvą, o ne tekstą ;)", šriftas=("Arial", 24), bg="oranžinė")
instrukcijas.pack()
scoreLabel = Etiketė (šaknis, tekstas="Paspauskite Enter, kad pradėtumėte", šriftas=("Arial", 24), bg="oranžinė")
scoreLabel.pack()
timeLabel = Etiketė (šaknis, tekstas ="Likęs laikas: " + str (likęs_laikas), šriftas=("Arial", 24), bg="oranžinė")
timeLabel.pack()
etiketė = Etiketė (šaknis, šriftas=("Arial", 90), bg="oranžinė")
Kaip minėta anksčiau, naudokite įvesties valdiklį, kad užfiksuotumėte žaidėjo atsakymą. Svarbus žingsnis yra susieti klavišą Enter su įvykiu tkinter lange, kad žaidėjui jį paspaudus būtų vykdoma tam tikra funkcija.
Norėdami tai pasiekti, turite išlaikyti raktas ir startGame () veikia kaip parametrai įpareigoti() funkcija. Be to, naudokite paketas() ir focus_set() būdai, kaip tvarkyti ir nustatyti fokusavimą įvesties etiketėje, kai paspausite klavišą Enter.
e = Įrašas (šriftas =20)
root.bind('' , pradėti žaidimą)
e.pack()
e.focus_set()
The mainloop () funkcija liepia Python paleisti tkinter įvykių kilpą ir klausytis įvykių (pvz., mygtukų paspaudimų), kol uždarysite langą.
root.mainloop()
Sudėkite visą kodą ir turėsite po ranka paruoštą spalvų žaidimą.
Spalvų žaidimo išvestis naudojant Python
Paleidus Color Game programą, ekrane pasirodo langas. Paspaudus Enter, prasideda atgalinis skaičiavimas, o žaidėjas turi pradėti rašyti žodžio spalvą. Už kiekvieną teisingą atsakymą balas didėja vienu, o galiausiai parodomas galutinis rezultatas.
Žaidimų kūrimas naudojant Python
Python yra fantastiška žaidimų kūrimo kalba. Kalba yra ne tik paprasta suprasti ir naudoti, bet ir leidžia bet kokio lygio žaidimų kūrėjams sukurti stulbinančius žaidimų pasaulius, kurie yra įdomūs ir linksmi.
Be to, kūrėjai turi daugybę galimybių įgyvendinti idėjas dėl įvairių rinkoje esančių žaidimų kūrimo platformų, tokių kaip PyGame ar Kivy.