Rozpohybujte svou hlavní postavu v reakci na vstup hráče pomocí klávesnice a myši v knihovně Arcade.

Arcade je oblíbená knihovna Pythonu, kterou můžete použít k vytváření 2D arkádových her. Je to snadno použitelná knihovna, která poskytuje jednoduchý rámec pro vytváření her v Pythonu.

Jednou ze základních součástí každé hry je pohyb hráče.

Vytvoření jednoduché hry v Arcade

Můžete najít kompletní kód v tomto úložišti GitHub.

Než začnete, ujistěte se, že máte pip nainstalovaný na vašem zařízení. K instalaci arkádové knihovny použijte tento příkaz:

instalační knihovna pip

Poté vytvořte třídu Player jako podtřídu třídy pasáž. Skřítek třída, a MyGame třídy jako podtřídy pasáž. Okno. The MyGame třída bude mít metody pro nastavení herních objektů, jejich vykreslení na obrazovce, aktualizaci stavu hry a zpracování uživatelských vstupů. Kód pro vytvoření herní obrazovky a objektu hráče je následující:

import pasáž

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

třídaHráč(pasáž. Skřítek):
def__init__(já):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

instagram viewer

třídaMyGame(pasáž. Okno):
def__init__(já):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Moje hra")
self.player = Žádný
arcade.set_background_color (arcade.color. ČERNÁ)

defzaložit(já):
self.player = Hráč ()

defon_draw(já):
arcade.start_render()
self.player.draw()

defAktualizace(self, delta_time):
složit

MyGame().run()

Přidání pohybu hráče se vstupem z klávesnice

Nyní, když jste vytvořili herní obrazovku a objekt hráče, můžete hráčem pohybovat v reakci na vstup z klávesnice. Definujte on_key_press() a on_key_release() metody, které zavoláte, když hráč stiskne nebo uvolní klávesu.

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player.change_x = -5
elif klíč == arcade.key. ŽE JO:
self.player.change_x = 5
elif klíč == arcade.key. NAHORU:
self.player.change_y = 5
elif klíč == arcade.key. DOLŮ:
self.player.change_y = -5

defon_key_release(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET nebo klíč == arcade.key. ŽE JO:
self.player.change_x = 0
elif klíč == arcade.key. NAHORU nebo klíč == arcade.key. DOLŮ:
self.player.change_y = 0

Při přidávání pohybu hráče pomocí klávesových vstupů můžete upravit rychlost pohybu změnou přiřazené hodnoty self.player.change_x a self.player.change_y. Můžete také přidat podmínky pro omezení pohybu hráče na herní obrazovce.

Přidání pohybu hráče se vstupem myši

Kromě vstupů z klávesnice můžete také přidat pohyb hráče pomocí vstupu myši. Definujte on_mouse_motion() metoda, která se spustí, když hráč pohne myší. Uvnitř metody nastavte střed_x a centrum_y vlastnosti objektu hráče na aktuální pozici myši.

defon_mouse_motion(self, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Při přidávání pohybu hráče pomocí vstupu myši můžete přizpůsobit chování objektu hráče, když uživatel klikne nebo podrží myš, definováním metod, jako je např. on_mouse_press() nebo on_mouse_drag(). Tyto metody můžete použít ke spouštění akcí hráčů, jako je střelba nebo skákání, v závislosti na herních mechanismech.

Představujeme další funkce

Pohyb hráče můžete dále zlepšit tím, že vezmete v úvahu zrychlení a zpomalení. Upravte on_key_press() metoda odečíst nebo přidat k změnit_x a změnit_y vlastnosti předmětu hráče v závislosti na směru pohybu. Nastavte také změnit_x a změnit_y vlastnosti na 0 v on_key_release() metodou, jako dříve.

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player.change_x -= 5
elif klíč == arcade.key. ŽE JO:
self.player.change_x += 5
elif klíč == arcade.key. NAHORU:
self.player.change_y += 5
elif klíč == arcade.key. DOLŮ:
self.player.change_y -= 5

defon_key_release(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET nebo klíč == arcade.key. ŽE JO:
self.player.change_x = 0
elif klíč == arcade.key. NAHORU nebo klíč == arcade.key. DOLŮ:
self.player.change_y = 0

Stejně jako PyGame můžete také přidat detekci kolize mezi objektem hráče a další herní objekty, jako jsou nepřátelé nebo překážky v arkádách. Toho můžete dosáhnout přidáním následujícího kódu do Aktualizace() metoda MyGame třída:

defAktualizace(self, delta_time):
self.player.update()

# Zkontrolujte kolize mezi hráčem a jinými herními objekty
kolize = arcade.check_for_collision_with_list (self.player, self.enemy_list)

pro kolize v kolize:
kolize.kill()

Vytvořte poutavé hry s interaktivním pohybem hráče

Interaktivní pohyb hráče je zásadním aspektem každé poutavé hry. Použití různých typů mechanik pohybu, jako je skákání, běh, létání a klouzání, může přidat do hry rozmanitost a vzrušení.

Dát hráčům kontrolu nad jejich pohybem dodává pocit agentury a ponoření, což může vést k uspokojivějšímu hernímu zážitku.