Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Battlefield2, World of Tanks, The Sims4 ja Freedom Force ovat muutamia niistä tuhansista hämmästyttävistä peleistä, jotka on kehitetty Pythonilla.

Tkinter, Python-standardikäyttöliittymä Tk GUI -työkalupakille, on tehokas moduuli, joka tekee graafisten käyttöliittymien luomisesta helppoa ja hauskaa. Hyödynnä tätä moduulia kehittääksesi ajatuksia kääntävän väripelin. Opi myös käyttämään moduulia matkan varrella.

Mikä on väripeli?

Väripelissä ohjelma näyttää värin nimen näytöllä, mutta eri fontin värillä. Se esimerkiksi näyttää sanan Keltainen käyttämällä punaista kirjasinväriä ja pelaajan on kirjoitettava tekstin väri.

Tämä tietojen ja ajastimen välinen ristiriita luo paljon hämmennystä ja luo viihdyttävän pelikokemuksen.

Tkinter ja satunnainen moduuli

Väripelin rakentamiseen käytät tkinter moduuli ja satunnainen moduuli. Tkinter on monialustainen, yksinkertainen ja käyttäjäystävällinen GUI-moduuli, jonka avulla voit luoda nopeasti graafisia käyttöliittymiä.

instagram viewer

Siinä on joitain hyödyllisiä työkaluja, kuten tarra- ja merkintäwidgetit ja asettelunhallintaohjelmat, kuten pakkaus, ruudukko ja paikka. Tarjotut toiminnot ovat melko yksinkertaisia, joten uusien ohjelmoijien on helppo suunnitella sovelluksia ilman paljon vaivaa. Asenna tkinter järjestelmään suorittamalla seuraava komento päätteessä:

pip asennus tkinter

Satunnaismoduuli on sisäänrakennettu kirjasto, jonka avulla voit luoda satunnaisia ​​valintoja. Käyttämällä tätä moduulia, voit kehittää käsikrikettipelejä, numeroiden arvauspelit, maagiset kahdeksan pallon pelit, satunnaiset salasanageneraattorit, ja paljon muuta.

Väripelin rakentaminen Pythonilla

Color Gamen lähdekoodi on saatavilla a GitHub-arkisto ja sitä voi käyttää ilmaiseksi MIT-lisenssin alaisena.

Aloita tuomalla tkinter ja satunnaismoduuli. Tallenna värien nimet merkkijonoluettelona ja alusta pisteet muuttuja arvoon 0 ja aikaa jäljellä 60:een.

alkaen tkinter tuonti *
tuonti satunnainen

värit = ['Punainen', 'Vihreä', 'Sininen', 'Musta', 'Vaaleanpunainen', 'Valkoinen', 'Violetti', 'Keltainen', 'Ruskea']
pisteet = 0
aika_jäljellä = 60

Määritä funktio nimeltä aloita peli() joka kestää tapahtuma syöteargumenttina. Toiminto suorittaa kaksi tehtävää. Ensin se tarkistaa, onko aikaa jäljellä vastaa 60. Jos kyllä, se kutsuu ja suorittaa lähtölaskenta() toiminto. Toiseksi se kutsuu seuraava väri() toiminto, joka sekoittaa satunnaisesti ja näyttää värin ja tuloksen pelin ollessa käynnissä.

defaloita peli(tapahtuma):
jos jäljellä_aika == 60:
lähtölaskenta()
nextColor()

Määritä funktio nimeltä nextColor() ja viitata muuttujiin maailmanlaajuisesti. Jos jäljellä oleva aika on suurempi kuin 0, aseta tarkennus syöttökenttään käyttämällä focus_set() menetelmä merkintäetiketissä (tallennettu muuttujaan e) määritelty koodin jälkimmäisessä puoliskossa.

Käytä saada() tapa hakea merkinnän nykyinen teksti merkkijonona ja muuttaa se pieniksi kirjainten välisen yhteensopivuuden välttämiseksi. Jos tämä on yhtä suuri kuin näytöllä näkyvä väri, lisää arvoa yhdellä. Käytä poistaa() toiminto 0:sta viimeiseen hakemistoon syöttöwidgetissä sisällön tyhjentämiseksi.

defseuraava Väri():
maailmanlaajuisesti pisteet
maailmanlaajuisesti aikaa jäljellä
jos jäljellä_aika > 0:
e.focus_set()
jos e.get().lower() == värit[1].alempi():
pisteet += 1
e.delete(0, END)

Käytä sekoitus () -toiminto järjestää luettelon kohteet uudelleen ja näyttää väritarran, jossa teksti on luettelon ensimmäisenä värinä ja fontin väri luettelon toisena värinä. Käytä config() toiminto päällä scoreLabel (joka pyytää painamaan Enter) näyttää tuloksen pelin ollessa käynnissä.

 random.shuffle (värit)
label.config (fg=str (värit[1]), text=str (värit[0]))
scoreLabel.config (text="Pistemäärä:" + str (pisteet))

Määritä funktio nimeltä lähtölaskenta() joka viittaa jäljellä olevan ajan muuttujaan ja pienentää sitä yhdellä. Käytä config() toiminto päällä aikaLabel näyttääksesi jäljellä olevan ajan näytössä ja jälkeen() takaisinsoittotoiminto lähtölaskenta toiminto 1000 millisekunnin tai yhden sekunnin viiveen jälkeen.

deflähtölaskenta():
maailmanlaajuisesti aikaa jäljellä
jos jäljellä_aika > 0:
jäljellä_aika -= 1
timeLabel.config (text="Aikaa jäljellä: " + str (jäljellä oleva aika))
timeLabel.after(1000, lähtölaskenta)

Alusta tkinter-instanssi ja näytä juuriikkuna. Aseta ikkunan otsikko, mitat pikseleinä ja taustaväri.

juuri = Tk()
root.title("Väripeli käänteellä")
root.geometry("750x450")
root.configure (tausta='Oranssi')

Käytä Label widget, joka opastaa pelaajaa pelin ohjeista. Se hyväksyy ylätason ikkunan, johon sijoitat sen. Tekstissä tulee näkyä fontin tyyppi ja koko sekä tarran taustaväri. Käytä pakkaus() toiminto järjestää otsikkowidget lohkoiksi ennen niiden sijoittamista pääwidgetiin.

Samoin määritä pistemäärä, joka kehottaa käyttäjää painamaan Tulla sisään aloittaaksesi pelin sekä aikamerkinnän jäljellä olevan ajan näyttämiseksi. Varmista, että kaikkien tarrojen taustaväri on oranssi, jotta ne sulautuvat taustaan. Määritä tyhjä tarra, joka sisältää värien nimet nextColor() toiminto.

ohjeet = Label (juuri, teksti="Kirjoita sanan väri, älä tekstiä ;)", font =("Arial", 24), bg="oranssi")
ohjeet.pack()
scoreLabel = Label (juuri, teksti="Aloita painamalla Enter", font =("Arial", 24), bg="oranssi")
scoreLabel.pack()
timeLabel = Label (juuri, teksti="Aikaa jäljellä: " + str (jäljellä oleva aika), font=("Arial", 24), bg="oranssi")
timeLabel.pack()
etiketti = Label (juuri, font=("Arial", 90), bg="oranssi")

Kuten aiemmin mainittiin, käytä syöttöwidgetiä soittimen vastauksen tallentamiseen. Tärkeä vaihe on Enter-näppäimen sitominen tapahtumaan tkinter-ikkunassa niin, että kun pelaaja painaa sitä, tietty toiminto suoritetaan.

Tämän saavuttamiseksi läpäiset avain ja aloita peli() toimivat parametreina sitoa() toiminto. Lisäksi käytä pakkaus() ja focus_set() menetelmiä järjestellä ja asettaa tarkennus syöttötarraan, kun painat Enter-näppäintä.

e = Merkintä (font=20)
root.bind('', aloita peli)
e.pack()
e.focus_set()

The mainloop() toiminto käskee Pythonia suorittamaan tkinter-tapahtumasilmukan ja kuuntelemaan tapahtumia (kuten painikkeen painalluksia), kunnes suljet ikkunan.

root.mainloop()

Yhdistä kaikki koodi ja sinulla on väripeli kierteellä pelattavaksi käden ulottuvilla.

Väripelin tulos Pythonilla

Kun Color Game -ohjelma suoritetaan, näyttöön tulee ikkuna. Kun painat Enter, lähtölaskenta alkaa, ja pelaajan on aloitettava sanan värin kirjoittaminen. Jokaisen oikean vastauksen pistemäärä kasvaa yhdellä, ja lopulta se näyttää lopullisen pistemäärän.

Pelien kehittäminen Pythonilla

Python on loistava kieli pelien kehittämiseen. Kieli ei ole vain yksinkertaista ymmärtää ja käyttää, vaan se antaa myös kaiken tasoisille pelinkehittäjille mahdollisuuden luoda upeita pelimaailmoja, jotka ovat mielenkiintoisia ja viihdyttäviä.

Lisäksi tekijöillä on laaja valikoima vaihtoehtoja ideoiden toteuttamiseen markkinoiden erilaisten pelikehitysalustojen, kuten PyGame tai Kivy, ansiosta.