Jebkurai spēlei ir ļoti svarīgi reaģēt uz ievadi, un ir lietderīgi atbalstīt tastatūru lietotājiem, kuri tai dod priekšroku. Uzziniet, kā to izdarīt, izmantojot Python arkādes bibliotēku.

Tastatūras ievade ir būtiska spēles izstrādes sastāvdaļa, un ir ļoti svarīgi to efektīvi apstrādāt, lai nodrošinātu lielisku lietotāja pieredzi. Arkādes bibliotēka nodrošina vienkāršu un efektīvu veidu, kā apstrādāt tastatūras ievadi jūsu Python spēlēs.

Vienkāršas spēles izveide ar atskaņotāju

Pilnu kodu varat atrast šeit šis GitHub repo.

Pirms ķeraties pie tastatūras ievades, pārbaudiet, vai tas ir pip ir instalēts jūsu ierīcē. Izmantojiet šo komandu, lai instalētu arkādes bibliotēku:

pip instalēšanas arkāde

Pēc tam izveidojiet vienkāršas spēles skeletu:

imports arkāde

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

klasēMana spēle(pasāža. logs):
def__tajā__(pats, platums, augstums):
super().__init__(platums, augstums, "Mana spēle")
arcade.set_background_color (arcade.color. BALTS)

defon_draw(pats):
arcade.start_render()

defAtjaunināt(self, delta_time):
caurlaide

MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

instagram viewer

Tādējādi tiek izveidots logs ar baltu fonu. Pēc tam pievienojiet spēlei spēlētāju:

klasēSpēlētājs:
def__tajā__(sevis, x, y):
pats.x = x
self.y = y
self.ātrums = 5
sevis.rādiuss = 20

defizdarīt(pats):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. ZILS)

defpārvietot_pa kreisi(pats):
self.x -= self.ātrums

defkusties pa labi(pats):
self.x += self.ātrums

defpārvietot_uz augšu(pats):
self.y += self.ātrums

defpārvietot_uz leju(pats):
self.y -= self.ātrums

Tādējādi tiek izveidots vienkāršs atskaņotājs ar zilu apli. Jūs varat pievienot šo spēlētāju savai spēlei, pārveidojot Mana spēle klase:

imports arkāde

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

klasēMana spēle(pasāža. logs):
def__tajā__(pats, platums, augstums):
super().__init__(platums, augstums, "Mana spēle")
arcade.set_background_color (arcade.color. BALTS)
self.player = Spēlētājs (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

defon_draw(pats):
arcade.start_render()
self.player.draw()

defAtjaunināt(self, delta_time):
caurlaide

defgalvenais():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ja __nosaukums__ == "__galvenais__":
galvenais ()

Tagad jūsu spēlē ir spēlētājs, kuru varat uzzīmēt uz ekrāna.

Reaģējot uz taustiņu nospiešanu un atlaišanu

Lai reaģētu uz lietotāja ievadi spēlē, jums ir jānospiež un jāatlaiž taustiņi. Arkādes bibliotēka nodrošina divas metodes šo notikumu apstrādei: on_key_press un on_key_release.

Lai izmantotu šīs metodes, tās ir jādefinē savā arkāde. Logs apakšklase. Kad spēlētājs nospiež vai atlaiž taustiņu, arkāde izpildīs atbilstošo metodi, nododot tai divus argumentus: taustiņu un modifikatorus. taustiņu ir vesels skaitlis, kas attēlo nospiestā vai atlaista taustiņa atslēgas kodu. modifikatori ir bitu lauks, kas attēlo visus modifikācijas taustiņus, kurus atskaņotājs arī nospieda, piemēram, Shift vai Control.

Šeit ir piemērs, kā reaģēt uz taustiņa nospiešanu spēlē:

klasēMana spēle(pasāža. logs):
defon_key_press(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. PA kreisi:
# Pārvietojiet spēlētāju pa kreisi
elifs taustiņš == arcade.key. PA LABI:
# Pārvietojiet atskaņotāju pa labi
elifs taustiņš == arcade.key. UP:
# Pārvietojiet atskaņotāju uz augšu
elifs taustiņš == arcade.key. UZ LEJU:
# Pārvietojiet atskaņotāju uz leju

Lai reaģētu uz galvenajiem laidieniem, varat definēt on_key_release metode tādā pašā veidā:

klasēMana spēle(pasāža. logs):
defon_key_release(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. PA kreisi:
# Pārtrauciet atskaņotāja pārvietošanu pa kreisi
elifs taustiņš == arcade.key. PA LABI:
# Pārtrauciet atskaņotāja pārvietošanu pa labi
elifs taustiņš == arcade.key. UP:
# Pārtrauciet atskaņotāja pārvietošanu uz augšu
elifs taustiņš == arcade.key. UZ LEJU:
# Pārtrauciet atskaņotāja pārvietošanu uz leju

Ir svarīgi atzīmēt, ka notveršanā lietotāja ievade pygame nepieciešama manuāla notikumu pārbaude jūsu spēles ciklā. No otras puses, Arcade bibliotēka automātiski izsauc atbilstošās metodes, kad spēlētājs nospiež vai atlaiž taustiņu. Tas nozīmē, ka jums nav manuāli jāpārbauda galvenie spēles cikla notikumi, tādējādi ietaupot jūs no papildu koda.

Tastatūras ievades apstrādes pielāgošana jūsu spēles vajadzībām

Arkādes bibliotēka nodrošina daudzus veidus, kā pielāgot tastatūras ievadi. Iespējams, vēlēsities mainīt spēles taustiņu stiprinājumus vai ļaut spēlētājam pielāgot savus taustiņu stiprinājumus.

To var izdarīt, definējot vārdnīcu key_map kas kartē katru taustiņu ar atbilstošo spēlētāja objekta metodi. Lai ļautu atskaņotājam pielāgot taustiņu stiprinājumus, varat pievienot iestatījumu izvēlni, kas maina key_map vārdnīca, pamatojoties uz spēlētāja vēlmēm.

Šeit ir piemērs:

klasēMana spēle(pasāža. logs):
def__tajā__(es, platums, augstums, nosaukums):
super().__init__(platums, augstums, virsraksts)
self.player = Spēlētājs(100, 100)

self.key_map = {
arkāde.atslēga. PA kreisi: self.player.move_left,
arkāde.atslēga. LABĀ: self.player.move_right,
arkāde.atslēga. UP: self.player.move_up,
arkāde.atslēga. DOWN: self.player.move_down
}

defon_key_press(pašs, atslēga, modifikatori):
ja taustiņu iekšā self.key_map:
self.key_map[key]()

defon_key_release(pašs, atslēga, modifikatori):
ja taustiņu iekšā self.key_map:
self.key_map[taustiņš + 1]()

Atbildiet uz lietotāja ievadi reāllaikā

Reaģēšana uz lietotāja ievadi reāllaikā ir būtisks saistošas ​​spēles izveides aspekts. Atvēlot laiku, lai pareizi apstrādātu tastatūras ievadi savā spēlē, jūs varat izveidot saistošāku un ieskaujošu pieredzi saviem spēlētājiem un galu galā padariet savu spēli izcilu pārpildītajā tirgus laukums.