Chcete zdokonalit svou hru zvládání nebezpečí? Proměňte životy ve zdraví a dodejte své hře další rozměr.
Přidání zdravotního systému do vaší arkádové hry může zlepšit zážitek hráče a může přidat další vrstvu výzev a zapojení. Můžete vytvořit více pohlcující herní zážitek se zobrazením hráčova zdraví a mechanismy poškození a léčení.
Naštěstí je implementace zdravotního systému v Pythonu pomocí knihovny Arcade přímočará a vyžaduje jen několik kroků.
Vytvořte jednoduchou hru
První, nainstalujte pip do svého zařízení a pomocí níže uvedeného příkazu nainstalujte arkádovou knihovnu:
pip instalační arkáda
Poté začněte vytvořením jednoduché hry pomocí knihovny Arcade. Tato hra bude obsahovat postavu hráče, která se může pohybovat doleva, doprava, nahoru a dolů, a nepřátelský předmět, který pro hráče představuje hrozbu.
Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.
Vytvořte nový soubor s názvem jednoduchá hra.py a přidejte níže uvedený kód:
import pasáž
# Nastavte rozměry okna
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600# Nastavte rychlost pohybu hráče
PLAYER_MOVEMENT_SPEED = 5
bílá = arkáda.barva. BÍLÝ
modrá = arkáda.barva. MODRÝ
červená = arkáda.barva. ČERVENÉtřídaGameWindow(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
arcade.set_background_color (bílá)# Vytvořte hráče a nepřátelské objekty
self.player = arkáda. SpriteCircle(30, modrá)
sebe.nepřítel = arkáda. SpriteCircle(30, Červené)
self.player.center_x = 100
self.player.center_y = 100
self.nemy.center_x = 400
self.nemy.center_y = 300defon_draw(já):
arcade.start_render()
self.player.draw()
self.nemy.draw()defAktualizace(self, delta_time):
složitdefon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player.center_x -= RYCHLOST_POHYBU HRÁČE
elif klíč == arcade.key. ŽE JO:
self.player.center_x += RYCHLOST_POHYBU HRÁČE
elif klíč == arcade.key. NAHORU:
self.player.center_y += RYCHLOST_POHYBU HRÁČE
elif klíč == arcade.key. DOLŮ:
self.player.center_y -= RYCHLOST_POHYBU HRÁČEdefhlavní():
hra = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
-li __jméno__ == "__hlavní__":
hlavní()
Mělo by se zobrazit okno obsahující dva znaky reprezentované modrými a červenými kroužky:
Chcete-li implementovat zdravotní systém, definujte proměnné a konstanty související se zdravím. Budete je používat ke sledování aktuálního zdraví hráče a určování pravidel pro poškození a léčení. Přidejte následující kód dovnitř GameWindow třída:
třídaGameWindow(pasáž. Okno):
def__init__(vlastní, šířka, výška):
# ...
# Proměnné a konstanty související se zdravím
self.player_health = 100# bodů zdraví uzdravených za sekundu
self.heal_rate = 1# Časovač pro léčení
self.heal_timer = 0defAktualizace(self, delta_time):
# ...
# Aktualizujte časovač hojení
self.heal_timer += delta_time# Každé 2 sekundy uzdravujte zdraví hráče
-li self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0
# Ujistěte se, že zdraví nepřekračuje maximální hodnotu
-li self.player_health > 100:
self.player_health = 100
Implementace mechaniky poškození a léčení
Chcete-li implementovat mechaniku poškození a léčení, detekovat kolize mezi hráčem a nepřítelem. Snižte hráčovo zdraví, když se srazí s nepřítelem, a uzdravte hráčovo zdraví každé 2 sekundy, když se nesrazí. Upravte Aktualizace() metodu a přidejte následující kód:
třídaGameWindow(pasáž. Okno):
def__init__(vlastní, šířka, výška):
# ...defAktualizace(self, delta_time):
# Detekujte kolize mezi hráčem a nepřítelem
-li arcade.check_for_collision (self.player, self.nemy):
self.player_health -= 5
# ...
Správa hráčské smrti a herních scénářů
Chcete-li spravovat smrt hráče a scénáře konce hry, zkontrolujte, zda zdraví hráče dosahuje nuly nebo níže. Pokud zdraví klesne na nulu, považujte hráče za mrtvého a ukončete hru. Upravte Aktualizace() metoda s následujícím kódem:
třídaGameWindow(pasáž. Okno):
def__init__(vlastní, šířka, výška):
# ...defAktualizace(self, delta_time):
# ...# Zkontrolujte, zda je zdraví hráče nulové nebo nižší
-li self.player_health <= 0:
# Ukončete hru
arcade.close_window()
# ...
Vizualizace ukazatele zdraví
Vizuální znázornění zdraví hráče může výrazně zlepšit herní zážitek. Vytvořte ukazatel zdraví pomocí obdélníků, které zobrazují aktuální úroveň zdraví. Vytvořte nový soubor s názvem health-bar.py a přidejte kód s níže uvedenými aktualizacemi:
třídaGameWindow(pasáž. Okno):
def__init__(vlastní, šířka, výška):
# ...defon_draw(já):
arcade.start_render()
self.player.draw()
self.nemy.draw()
šedá = arkáda.barva. SVĚTLE ŠEDÁ
zelená = arkáda.barva. ZELENÁ# Nakreslete ukazatel zdraví
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, šedá)health_width = self.player_health / 100 * SCREEN_WIDTH
arcade.draw_rectangle_filled (health_width // 2, 20,
health_width, 20, zelená)
Níže je výstup:
Včetně dalších funkcí
Zdravotní systém můžete dále vylepšit dalšími funkcemi, jako jsou ty níže.
Numerický zdravotní displej
Kromě lišty zdraví můžete na obrazovce zobrazit zbývající zdraví jako číselnou hodnotu. To poskytuje přesnou indikaci zdravotního stavu hráče. Přidejte následující kód dovnitř on_draw() metoda:
# Uvnitř metody on_draw().
černá = arkáda.barva. ČERNÁ
text = f" Zdraví: {self.player_health}"
arcade.draw_text (text, 10, 10, Černá, 14)
Zdraví Power-Ups
Chcete-li zavést vylepšení zdraví, můžete vytvořit speciální objekty, které posilují zdraví hráče, když s nimi narazí. Zde je příklad, jak můžete tuto funkci implementovat:
# Uvnitř metody update().
-li arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20
# Odstraňte napájení ze hry
self.power_up.kill()
Různé typy nepřátel
Chcete-li do své hry přidat hloubku, můžete představit různé typy nepřátel, kteří hráči způsobí různé úrovně poškození. To přidává strategický prvek a umožňuje rozmanitější herní zážitky. Zde je implementace této funkce:
# Uvnitř metody update().
-li arcade.check_for_collision (self.player, self.nemy):
-li typ vlastního.nepřítele == "slabý":
self.player_health -= 5
elif typ vlastního.nepřítele == "silný":
self.player_health -= 20
Začleněním těchto dalších funkcí do implementace vašeho zdravotního systému můžete pro své hráče vytvořit dynamičtější a náročnější herní zážitky.
Nejlepší postupy pro zdravotnický systém
Při implementaci zdravotního systému do vaší arkádové hry je důležité dodržovat osvědčené postupy, abyste zajistili, že systém bude robustní a efektivní. Zde je několik osvědčených postupů, které je třeba mít na paměti:
Make It Modular
Udržujte funkčnost zdravotního systému v samostatné třídě nebo modulu, aby byl modulární a snadno znovu použitelný v různých herních projektech. To podporuje organizaci kódu a oddělení zájmů.
Ověření vstupu a zabezpečení
Implementujte ověření vstupu, abyste zabránili kódu přiřazovat neplatné hodnoty zdraví. Stejné záruky by měly chránit před neplatnými zdravotními hodnotami, když dojde k poškození nebo uzdravení.
Mechanismus ukládání a načítání
Implementujte mechanismus ukládání a načítání, který zahrnuje zdravotní stav hráče. To umožňuje hráčům pokračovat ve hře s nedotčeným postupem, včetně zdraví, i po ukončení hry.
Testování a řešení chyb
Důkladně otestujte implementaci zdravotnického systému, abyste ověřili jeho správnost a spolehlivost. K efektivnímu zpracování výjimek a okrajových případů používejte vhodné techniky zpracování chyb.
Konzistentní zdravotní zpětná vazba
Poskytněte hráči konzistentní a jasnou zpětnou vazbu o jeho zdravotním stavu. Můžete přidat zvukové efekty, vizuální podněty nebo dokonce haptická zpětná vazba, která zajišťuje, že hráči ve hře znají svůj zdravotní stav a mohou se během hraní informovaně rozhodovat.
Dodržováním těchto osvědčených postupů můžete vytvořit robustní a efektivní zdravotní systém, který vylepší herní zážitek z vaší arkádové hry při zachování kvality a čitelnosti kódu.
Udělejte si hry zábavnější s Health System
Přidání zdravotního systému do vaší hry může výrazně zlepšit celkový hráčský zážitek. Zavádí prvek rizika a výzvy, díky čemuž je hra poutavější a přínosnější.
Vizuální znázornění zdraví umožňuje hráčům snadno zhodnotit jejich aktuální stav, zvýšit ponoření a strategické rozhodování.