Odgovaranje na unos ključno je za svaku igru ​​i dobro je podržati tipkovnicu za korisnike koji to preferiraju. Saznajte kako s Pythonovom arkadnom bibliotekom.

Unos s tipkovnice bitan je dio razvoja igre i ključno je učinkovito rukovati njime kako biste pružili sjajno korisničko iskustvo. Biblioteka Arcade pruža jednostavan i učinkovit način rukovanja unosom tipkovnice u vašim Python igrama.

Stvaranje jednostavne igre s playerom

Kompletan kod možete pronaći u ovaj GitHub repo.

Prije nego što se upustite u rukovanje unosima s tipkovnice, provjerite jeste li pip instaliran na vašem uređaju. Upotrijebite ovu naredbu za instaliranje biblioteke arkadnih igara:

pip instaliraj arkadu

Nakon toga izradite kostur jednostavne igre:

uvoz arkada

SCREEN_WIDTH = 640
VISINA_EKRANA = 480

razredaMoja Igra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina, "moja igra")
arcade.set_background_color (arcade.color. BIJELA)

defizvlačenje(sebe):
arcade.start_render()

defAžuriraj(sam, delta_vrijeme):
proći

MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arkada.run()

instagram viewer

Ovo stvara prozor s bijelom pozadinom. Zatim dodajte igrača u svoju igru:

razredaIgrač:
def__u tome__(ja, x, y):
sebe.x = x
self.y = y
samo.brzina = 5
sam.radijus = 20

defcrtati(sebe):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. PLAVA)

defpomakni_lijevo(sebe):
self.x -= self.brzina

defpomaknuti se udesno(sebe):
self.x += self.brzina

defpomak_gore(sebe):
self.y += self.brzina

defpomicati prema dolje(sebe):
self.y -= self.brzina

Ovo stvara jednostavan igrač s plavim krugom. Ovog igrača možete dodati u svoju igru ​​mijenjanjem Moja Igra razred:

uvoz arkada

SCREEN_WIDTH = 640
VISINA_EKRANA = 480

razredaMoja Igra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina, "moja igra")
arcade.set_background_color (arcade.color. BIJELA)
self.player = Igrač (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

defizvlačenje(sebe):
arcade.start_render()
self.player.draw()

defAžuriraj(sam, delta_vrijeme):
proći

defglavni():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arkada.run()

ako __ime__ == "__glavni__":
glavni()

Sada imate igrača u igri kojeg možete nacrtati na ekranu.

Odgovaranje na pritiske i otpuštanja tipki

Da biste odgovorili na korisnički unos u vašoj igri, morate rukovati pritiskom i otpuštanjem tipki. Biblioteka Arcade nudi dvije metode za rukovanje tim događajima: na_pritisak_tipke i na_puštanje_ključa.

Da biste koristili ove metode, morate ih definirati u svom arkada. Prozor podrazred. Kada igrač pritisne ili otpusti tipku, arcade će pokrenuti odgovarajuću metodu, prosljeđujući joj dva argumenta: tipku i modifikatore. ključ je cijeli broj koji predstavlja šifru tipke pritisnute ili otpuštene tipke. modifikatori je bit polje koje predstavlja modifikatorske tipke koje je igrač također pritisnuo, poput Shift ili Control.

Evo primjera kako odgovoriti na pritisak tipke u igri:

razredaMoja Igra(arkada. Prozor):
defna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
# Pomakni igrača lijevo
elif ključ == arkada.ključ. PRAVO:
# Pomakni igrača udesno
elif ključ == arkada.ključ. GORE:
# Pomakni igrača gore
elif ključ == arkada.ključ. DOLJE:
# Pomakni igrača dolje

Da biste odgovorili na izdanja ključa, možete definirati na_puštanje_ključa metoda na isti način:

razredaMoja Igra(arkada. Prozor):
defna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
# Zaustavite pomicanje igrača lijevo
elif ključ == arkada.ključ. PRAVO:
# Zaustavite pomicanje igrača udesno
elif ključ == arkada.ključ. GORE:
# Zaustavite pomicanje igrača gore
elif ključ == arkada.ključ. DOLJE:
# Zaustavite pomicanje igrača prema dolje

Važno je napomenuti da hvatanje korisnički unos u pygame zahtijeva ručnu provjeru događaja unutar vaše petlje igre. S druge strane, biblioteka Arcade automatski poziva relevantne metode kada igrač pritisne ili otpusti tipku. To znači da ne morate ručno provjeravati ključne događaje u svojoj petlji igre, što vas štedi gnjavaže oko dodatnog koda.

Prilagodba rukovanja unosom s tipkovnice kako bi odgovarala potrebama vaše igre

Biblioteka Arcade nudi mnogo načina za prilagodbu unosa s tipkovnice. Možda ćete htjeti promijeniti tipkovnice za svoju igru ​​ili dopustiti igraču da prilagodi vlastite tipkovnice.

To možete učiniti definiranjem rječnika mapa_ključeva koji preslikava svaki ključ u odgovarajuću metodu objekta igrača. Da biste omogućili igraču da prilagodi svoje vezanje tipki, možete dodati izbornik postavki koji mijenja mapa_ključeva rječnik na temelju preferencija igrača.

Evo primjera:

razredaMoja Igra(arkada. Prozor):
def__u tome__(ja, širina, visina, naslov):
super().__init__(širina, visina, naslov)
self.player = Player(100, 100)

self.key_map = {
arkada.ključ. LIJEVO: self.player.move_left,
arkada.ključ. DESNO: self.player.move_right,
arkada.ključ. GORE: self.player.move_up,
arkada.ključ. DOLJE: self.player.move_down
}

defna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ u self.key_map:
self.key_map[ključ]()

defna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ u self.key_map:
self.key_map[tipka + 1]()

Odgovarajte na korisničke unose u stvarnom vremenu

Odgovaranje na unos korisnika u stvarnom vremenu bitan je aspekt stvaranja zanimljive igre. Ako odvojite vrijeme za pravilno rukovanje unosom s tipkovnice u svojoj igri, možete stvoriti zanimljiviju i impresivno iskustvo za vaše igrače i na kraju neka se vaša igra istakne u gužvi tržnica.