Reakcia na vstup je životne dôležitá pre každú hru a je dobré podporovať klávesnicu pre používateľov, ktorí ju uprednostňujú. Zistite, ako na to s arkádovou knižnicou Pythonu.

Vstup z klávesnice je nevyhnutnou súčasťou vývoja hier a je dôležité, aby ste s ním pracovali efektívne, aby ste používateľom poskytli skvelý zážitok. Knižnica Arcade poskytuje priamy a efektívny spôsob, ako zvládnuť vstup z klávesnice vo vašich hrách Python.

Vytvorenie jednoduchej hry s hráčom

Kompletný kód nájdete v toto úložisko GitHub.

Skôr ako sa pustíte do manipulácie so vstupmi z klávesnice, uistite sa, že máte pip nainštalovaný vo vašom zariadení. Na inštaláciu arkádovej knižnice použite tento príkaz:

arkáda na inštaláciu pipu

Potom vytvorte kostru jednoduchej hry:

importovať pasáž

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška, "Moja hra")
arcade.set_background_color (arcade.color. BIELY)

defon_draw(ja):
arcade.start_render()

defaktualizovať(self, delta_time):
prejsť

MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

instagram viewer

Vznikne tak okno s bielym pozadím. Potom do hry pridajte hráča:

triedaHráč:
def__init__(ja, x, y):
self.x = x
self.y = y
samo.rýchlosť = 5
vlastný.polomer = 20

defkresliť(ja):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. MODRÁ)

defmove_left(ja):
self.x -= self.speed

defpohnúť sa vpravo(ja):
self.x += self.speed

defmove_up(ja):
self.y += self.speed

defposunúť nadol(ja):
self.y -= samo.rýchlosť

Vznikne tak jednoduchý prehrávač s modrým kruhom. Tohto hráča môžete pridať do svojej hry úpravou MyGame trieda:

importovať pasáž

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška, "Moja hra")
arcade.set_background_color (arcade.color. BIELY)
self.player = Hráč (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

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

defaktualizovať(self, delta_time):
prejsť

defHlavná():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ak __meno__ == "__Hlavná__":
Hlavná()

Teraz máte v hre hráča, ktorého môžete nakresliť na obrazovku.

Reakcia na stlačenie a uvoľnenie tlačidiel

Ak chcete reagovať na vstup od používateľa vo svojej hre, musíte zvládnuť stlačenie a uvoľnenie kláves. Knižnica Arcade poskytuje dva spôsoby spracovania týchto udalostí: on_key_press a on_key_release.

Ak chcete použiť tieto metódy, musíte ich definovať vo svojom pasáž. okno podtrieda. Keď hráč stlačí alebo uvoľní kláves, Arcade spustí zodpovedajúcu metódu a odovzdá jej dva argumenty: kláves a modifikátory. kľúč je celé číslo predstavujúce kód stlačeného alebo uvoľneného tlačidla. modifikátory je bitové pole predstavujúce akékoľvek modifikačné klávesy, ktoré hráč tiež stlačil, napríklad Shift alebo Control.

Tu je príklad, ako reagovať na stlačenie klávesu v hre:

triedaMyGame(arkáda. okno):
defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
# Presuňte hráča doľava
elif kľúč == arcade.key. SPRÁVNY:
# Presuňte prehrávač doprava
elif kľúč == arcade.key. HORE:
# Presuňte prehrávač nahor
elif kľúč == arcade.key. DOLE:
# Presuňte prehrávač nadol

Ak chcete reagovať na uvoľnenie kľúča, môžete definovať on_key_release metóda rovnakým spôsobom:

triedaMyGame(arkáda. okno):
defon_key_release(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
# Zastavte pohyb hráča doľava
elif kľúč == arcade.key. SPRÁVNY:
# Zastavte pohyb hráča doprava
elif kľúč == arcade.key. HORE:
# Zastavte posúvanie prehrávača nahor
elif kľúč == arcade.key. DOLE:
# Zastavte pohyb prehrávača nadol

Je dôležité poznamenať, že zachytávanie vstup používateľa v pygame vyžaduje manuálnu kontrolu udalostí v rámci vašej hernej slučky. Na druhej strane knižnica Arcade automaticky vyvolá príslušné metódy, keď hráč stlačí alebo uvoľní kláves. To znamená, že nemusíte manuálne kontrolovať kľúčové udalosti vo svojej hernej slučke, čo vám ušetrí starosti s kódom navyše.

Prispôsobenie ovládania vstupu klávesnice tak, aby vyhovovalo potrebám vašej hry

Knižnica Arcade poskytuje mnoho spôsobov prispôsobenia vstupu klávesnice. Možno budete chcieť zmeniť klávesové skratky pre vašu hru alebo umožniť hráčovi prispôsobiť si vlastné klávesové skratky.

Môžete to urobiť definovaním slovníka key_map ktorý mapuje každý kláves na zodpovedajúcu metódu objektu hráča. Ak chcete, aby si prehrávač mohol prispôsobiť svoje klávesové skratky, môžete pridať ponuku nastavení, ktorá upraví key_map slovník na základe preferencií hráča.

Tu je príklad:

triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška, názov):
super().__init__(šírka, výška, názov)
self.player = Hráč(100, 100)

self.key_map = {
arkádový.kľúč. LEFT: self.player.move_left,
arkádový.kľúč. RIGHT: self.player.move_right,
arkádový.kľúč. UP: self.player.move_up,
arkádový.kľúč. DOWN: self.player.move_down
}

defon_key_press(ja, kľúč, modifikátory):
ak kľúč v self.key_map:
self.key_map[key]()

defon_key_release(ja, kľúč, modifikátory):
ak kľúč v self.key_map:
self.key_map[key + 1]()

Reagujte na používateľské vstupy v reálnom čase

Reakcia na vstup používateľa v reálnom čase je základným aspektom vytvárania pútavej hry. Ak si nájdete čas na správne spracovanie vstupu z klávesnice vo svojej hre, môžete vytvoriť pútavejšie a pohlcujúci zážitok pre vašich hráčov a v konečnom dôsledku vaša hra vynikne v preplnenom prostredí trhovisko.