Sisendile reageerimine on iga mängu jaoks ülioluline ja klaviatuuri on hea toetada kasutajatele, kes seda eelistavad. Siit saate teada, kuidas Pythoni arkaadteegiga.
Klaviatuurisisend on mänguarenduse oluline osa ja suurepärase kasutuskogemuse pakkumiseks on ülioluline seda tõhusalt käsitleda. Arcade'i teek pakub otsest ja tõhusat viisi Pythoni mängude klaviatuurisisendi käsitlemiseks.
Mängijaga lihtsa mängu loomine
Täieliku koodi leiate siit see GitHubi repo.
Enne klaviatuurisisendite käsitlemisse sukeldumist veenduge, et teil on pip teie seadmesse installitud. Kasutage seda käsku arkaadteegi installimiseks:
pip install arkaad
Pärast seda looge lihtsa mängu skelett:
importida arkaad
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus, "Minu mäng")
arcade.set_background_color (arcade.color. VALGE)defon_draw(ise):
arcade.start_render()defvärskendada(ise, delta_aeg):
üle andma
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
See loob valge taustaga akna. Järgmisena lisage oma mängu mängija:
klassMängija:
def__selles__(ise, x, y):
ise.x = x
ise.y = y
ise.kiirus = 5
ise.raadius = 20defjoonistada(ise):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. SININE)defliigu vasakule(ise):
ise.x -= ise.kiirusdefliigu paremale(ise):
ise.x += ise.kiirusdefüles liikuma(ise):
ise.y += ise.kiirus
defliigu alla(ise):
ise.y -= ise.kiirus
See loob lihtsa sinise ringiga mängija. Saate selle mängija oma mängu lisada, muutes seda Minu Mäng klass:
importida arkaad
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus, "Minu mäng")
arcade.set_background_color (arcade.color. VALGE)
self.player = Mängija (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)defon_draw(ise):
arcade.start_render()
self.player.draw()defvärskendada(ise, delta_aeg):
üle andmadefpeamine():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
kui __nimi__ == "__main__":
peamine ()
Nüüd on teie mängus mängija, kelle saate ekraanile joonistada.
Klahvivajutustele ja -vabastustele reageerimine
Mängus kasutaja sisendile vastamiseks peate tegelema klahvivajutuste ja vabastamisega. Arcade raamatukogu pakub nende sündmuste käsitlemiseks kahte meetodit. on_key_press ja on_key_release.
Nende meetodite kasutamiseks peate need oma arkaad. Aken alamklass. Kui mängija vajutab või vabastab klahvi, käivitab arkaad vastava meetodi, edastades sellele kaks argumenti: võti ja modifikaatorid. võti on täisarv, mis tähistab vajutatud või vabastatud klahvi koodi. modifikaatorid on bitiväli, mis tähistab mis tahes muuteklahvi, mida mängija ka vajutas, nagu Shift või Control.
Siin on näide selle kohta, kuidas mängus klahvivajutusega reageerida.
klassMinu Mäng(arkaad. aken):
defon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
# Liigutage mängija vasakule
elif võti == arcade.key. PAREMALE:
# Liigutage mängija paremale
elif võti == arcade.key. UP:
# Liigutage mängija üles
elif võti == arcade.key. ALLA:
# Liigutage mängija alla
Põhiväljaannetele reageerimiseks saate määratleda on_key_release meetod samal viisil:
klassMinu Mäng(arkaad. aken):
defon_key_release(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
# Lõpeta mängija vasakule liigutamine
elif võti == arcade.key. PAREMALE:
# Lõpetage mängija paremale liigutamine
elif võti == arcade.key. UP:
# Lõpetage mängija üles tõstmine
elif võti == arcade.key. ALLA:
# Lõpetage mängija allapoole liigutamine
Oluline on märkida, et jäädvustamine kasutaja sisend pygame'is nõuab teie mängutsüklis sündmuste käsitsi kontrollimist. Teisest küljest kutsub Arcade'i teek automaatselt välja asjakohased meetodid, kui mängija klahvi vajutab või vabastab. See tähendab, et te ei pea oma mängutsükli võtmesündmusi käsitsi kontrollima, säästes teid lisakoodiga seotud probleemidest.
Klaviatuuri sisendikäsitluse kohandamine teie mängu vajadustega
Arcade'i teek pakub palju võimalusi klaviatuurisisendi kohandamiseks. Võib-olla soovite muuta oma mängu klahvide sidumist või lubada mängijal oma klahvide sidumist ise kohandada.
Seda saate teha sõnastikku määratledes võtme_kaart mis kaardistab iga võtme mängija objekti vastava meetodiga. Et mängija saaks oma klahvide sidumist kohandada, võite lisada seadete menüü, mis muudab võtme_kaart sõnastik, mis põhineb mängija eelistustel.
Siin on näide:
klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus, pealkiri):
super().__init__(laius, kõrgus, pealkiri)
self.player = Player(100, 100)self.key_map = {
arkaad.võti. VASAK: self.player.move_left,
arkaad.võti. RIGHT: self.player.move_right,
arkaad.võti. UP: self.player.move_up,
arkaad.võti. ALLA: self.player.move_down
}defon_key_press(ise, võti, muutjad):
kui võti sisse self.key_map:
self.key_map[key]()
defon_key_release(ise, võti, muutjad):
kui võti sisse self.key_map:
ise.key_map[klahv + 1]()
Vastake kasutaja sisestustele reaalajas
Reaalajas kasutaja sisendile reageerimine on kaasahaarava mängu loomisel oluline aspekt. Kui võtate aega, et oma mängus klaviatuurisisendit õigesti käsitleda, saate luua köitvama ja kaasahaarava kogemuse oma mängijatele ja lõpuks paista oma mäng rahvarohkes hulgas silma turuplats.