Reakce na vstup je zásadní pro každou hru a je dobré podporovat klávesnici pro uživatele, kteří ji preferují. Zjistěte, jak na to s arkádovou knihovnou Pythonu.
Vstup z klávesnice je nezbytnou součástí vývoje her a je důležité s ním efektivně zacházet, aby byl uživatelsky příjemný. Knihovna Arcade poskytuje přímý a efektivní způsob, jak zpracovávat vstup z klávesnice ve vašich hrách v Pythonu.
Vytvoření jednoduché hry s hráčem
Kompletní kód najdete v toto úložiště GitHub.
Než se pustíte do práce se vstupy z klávesnice, ujistěte se, že máte pip nainstalovaný ve vašem zařízení. K instalaci arkádové knihovny použijte tento příkaz:
pip instalační arkáda
Poté vytvořte kostru jednoduché hry:
import pasáž
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška, "Moje hra")
arcade.set_background_color (arcade.color. BÍLÝ)defon_draw(já):
arcade.start_render()defAktualizace(self, delta_time):
složit
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
Vznikne tak okno s bílým pozadím. Dále přidejte hráče do hry:
třídaHráč:
def__init__(já, x, y):
self.x = x
self.y = y
vlastní.rychlost = 5
vlastní.poloměr = 20defkreslit(já):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. MODRÝ)defpohyb doleva(já):
self.x -= self.speeddefpohyb vpravo(já):
self.x += self.speeddefposunout_nahoru(já):
self.y += self.speed
defposunout dolů(já):
self.y -= samo.rychlost
Vznikne tak jednoduchý hráč s modrým kruhem. Tohoto hráče můžete přidat do své hry úpravou MyGame třída:
import pasáž
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška, "Moje hra")
arcade.set_background_color (arcade.color. BÍLÝ)
self.player = Player (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)defon_draw(já):
arcade.start_render()
self.player.draw()defAktualizace(self, delta_time):
složitdefhlavní():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
-li __jméno__ == "__hlavní__":
hlavní()
Nyní máte ve hře hráče, kterého můžete nakreslit na obrazovku.
Reakce na stisknutí a uvolnění kláves
Abyste mohli ve své hře reagovat na vstup uživatele, musíte zvládnout stisknutí a uvolnění kláves. Knihovna Arcade poskytuje dva způsoby zpracování těchto událostí: on_key_press a on_key_release.
Chcete-li tyto metody používat, musíte je definovat ve svém pasáž. Okno podtřída. Když hráč stiskne nebo uvolní klávesu, arcade spustí odpovídající metodu a předá jí dva argumenty: klávesu a modifikátory. klíč je celé číslo představující kód stisknuté nebo uvolněné klávesy. modifikátory je bitové pole představující jakékoli modifikační klávesy, které hráč také stiskl, jako je Shift nebo Control.
Zde je příklad, jak reagovat na stisknutí klávesy ve hře:
třídaMyGame(pasáž. Okno):
defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
# Přesuňte hráče doleva
elif klíč == arcade.key. ŽE JO:
# Přesuňte přehrávač doprava
elif klíč == arcade.key. NAHORU:
# Přesuňte přehrávač nahoru
elif klíč == arcade.key. DOLŮ:
# Přesuňte přehrávač dolů
Chcete-li reagovat na uvolnění kláves, můžete definovat on_key_release metoda stejným způsobem:
třídaMyGame(pasáž. Okno):
defon_key_release(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
# Zastavte pohyb hráče doleva
elif klíč == arcade.key. ŽE JO:
# Zastavte pohyb hráče doprava
elif klíč == arcade.key. NAHORU:
# Zastavte pohyb hráče nahoru
elif klíč == arcade.key. DOLŮ:
# Zastavte pohyb přehrávače dolů
Je důležité si uvědomit, že zachycení uživatelský vstup v pygame vyžaduje ruční kontrolu událostí ve vaší herní smyčce. Na druhou stranu knihovna Arcade automaticky vyvolá příslušné metody, když hráč stiskne nebo uvolní klávesu. To znamená, že nemusíte ručně kontrolovat klíčové události ve vaší herní smyčce, čímž si ušetříte starosti s kódem navíc.
Přizpůsobení ovládání vstupu klávesnice tak, aby vyhovovalo potřebám vaší hry
Knihovna Arcade poskytuje mnoho způsobů, jak přizpůsobit vstup z klávesnice. Možná budete chtít změnit vázání kláves pro vaši hru nebo umožnit hráči přizpůsobit si vlastní vázání kláves.
To lze provést definováním slovníku mapa_klíčů která mapuje každou klávesu na odpovídající metodu objektu hráče. Chcete-li přehrávači umožnit přizpůsobení jejich klávesových zkratek, můžete přidat nabídku nastavení, která upraví mapa_klíčů slovník založený na preferencích hráče.
Zde je příklad:
třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška, název):
super().__init__(šířka, výška, název)
self.player = Hráč(100, 100)self.key_map = {
arkáda.klíč. VLEVO: self.player.move_left,
arkáda.klíč. RIGHT: self.player.move_right,
arkáda.klíč. UP: self.player.move_up,
arkáda.klíč. DOWN: self.player.move_down
}defon_key_press(vlastní, klíč, modifikátory):
-li klíč v self.key_map:
self.key_map[key]()
defon_key_release(vlastní, klíč, modifikátory):
-li klíč v self.key_map:
self.key_map[klíč + 1]()
Reagujte na uživatelské vstupy v reálném čase
Reakce na vstup uživatele v reálném čase je základním aspektem vytváření poutavé hry. Když věnujete čas správnému zpracování vstupu z klávesnice ve vaší hře, můžete vytvořit poutavější a pohlcující zážitek pro vaše hráče a nakonec vaše hra vynikne v přeplněném prostředí tržiště.