Szeretnéd finomítani játékod veszélykezelésén? Változtassa életeit egészséggé, és adjon további dimenziót a játékmenethez.

Egészségügyi rendszer hozzáadása az arcade játékhoz javíthatja a játékos élményét, és további kihívást és elkötelezettséget adhat. Még magával ragadó játékélményt teremthetsz, ha bemutatod a játékos egészségi állapotát és a sérülések és gyógyulások mechanikáját.

Szerencsére az egészségügyi rendszer megvalósítása Pythonban az Arcade könyvtár használatával egyszerű, és csak néhány lépést igényel.

Hozzon létre egy egyszerű játékot

Első, telepítse a pip-t a készülékére és használja az alábbi parancsot az arcade könyvtár telepítéséhez:

pip install arcade

Ezután kezdje el egy egyszerű játék létrehozásával az Arcade könyvtár segítségével. Ez a játék tartalmaz egy játékos karaktert, amely balra, jobbra, fel és le mozoghat, valamint egy ellenséges tárgyat, amely veszélyt jelent a játékosra.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

instagram viewer

Hozzon létre egy új nevű fájlt simple-game.py és add hozzá az alábbi kódot:

import árkád

# Állítsa be az ablak méretét
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Állítsa be a játékos mozgási sebességét
PLAYER_MOVEMENT_SPEED = 5
fehér = arcade.color. FEHÉR
kék = arcade.color. KÉK
piros = arcade.color. PIROS

osztályGameWindow(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
arcade.set_background_color (fehér)

# Hozzon létre játékos és ellenséges objektumokat
self.player = arcade. SpriteCircle(30, kék)
én.ellenség = arcade. SpriteCircle(30, piros)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enemy.center_y = 300

defon_draw(maga):
arcade.start_render()
self.player.draw()
self.enemy.draw()

deffrissítés(self, delta_time):
pass

defon_key_press(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
elif kulcs == arcade.key. JOBB:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif kulcs == arcade.key. FEL:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif kulcs == arcade.key. LE:
self.player.center_y -= PLAYER_MOVEMENT_SPEED

deffő-():
játék = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ha __név__ == "__fő__":
fő()

Látnia kell egy ablakot, amely két karaktert tartalmaz, kék és piros körökkel:

Az egészségügyi rendszer megvalósításához határozza meg az egészséggel kapcsolatos változókat és állandókat. Segítségükkel nyomon követheted a játékos aktuális egészségi állapotát, és meghatározhatod a sebzés és gyógyulás szabályait. Adja hozzá a következő kódot a GameWindow osztály:

osztályGameWindow(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
# ...
# Egészséggel kapcsolatos változók és állandók
self.player_health = 100

# másodpercenként gyógyult egészségügyi pont
self.heal_rate = 1

# Időzítő a gyógyuláshoz
self.heal_timer = 0

deffrissítés(self, delta_time):
# ...
# Frissítse a gyógyulási időzítőt
self.heal_timer += delta_time

# Gyógyítsd meg a játékos egészségét 2 másodpercenként
ha self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Győződjön meg arról, hogy az állapot nem haladja meg a maximális értéket
ha self.player_health > 100:
self.player_health = 100

Károsodási és gyógyulási mechanika megvalósítása

A károsodási és gyógyulási mechanika megvalósításához, a játékos és az ellenség közötti ütközések észlelése. Csökkentse a játékos egészségi állapotát, amikor ütközik az ellenséggel, és gyógyítsa meg a játékos egészségi állapotát 2 másodpercenként, amikor nem ütköznek. Módosítsa a frissítés() módszert, és adja hozzá a következő kódot:

osztályGameWindow(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
# ...

deffrissítés(self, delta_time):
# A játékos és az ellenség közötti ütközések észlelése
ha arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5

# ...

Játékoshalál és Game Over forgatókönyvek kezelése

A játékos halálának és a játék vége forgatókönyveinek kezeléséhez ellenőrizze, hogy a játékos állapota eléri-e a nullát vagy az alá. Ha az életerő nullára csökken, tekintse a játékost halottnak, és fejezze be a játékot. Módosítsa a frissítés() módszer a következő kóddal:

osztályGameWindow(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
# ...

deffrissítés(self, delta_time):
# ...

# Ellenőrizze, hogy a játékos állapota nulla vagy az alatt van
ha self.player_health <= 0:
# Fejezd be a játékot
arcade.close_window()

# ...

Az Egészségsáv megjelenítése

A játékos egészségi állapotának vizuális ábrázolása nagyban javíthatja a játékélményt. Hozzon létre egy állapotsávot téglalapokkal az aktuális állapot megjelenítéséhez. Hozzon létre egy új nevű fájlt egészség-bar.py és adja hozzá a kódot az alábbi frissítésekkel:

osztályGameWindow(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
# ...

defon_draw(maga):
arcade.start_render()
self.player.draw()
self.enemy.draw()
szürke = arcade.color. VILÁGOS SZÜRKE
zöld = arcade.color. ZÖLD

# Rajzolj egészségügyi sávot
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, szürke)

health_width = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
Health_width, 20, zöld)

Alább látható a kimenet:

Kiegészítő funkciókkal együtt

Tovább fejlesztheti az egészségügyi rendszert további funkciókkal, például az alábbiakkal.

Numerikus állapotkijelző

Az állapotsávon kívül a fennmaradó állapotot numerikus értékként is megjelenítheti a képernyőn. Ez pontos jelzést ad a játékos egészségi állapotáról. Adja hozzá a következő kódot a on_draw() módszer:

# Az on_draw() metóduson belül
fekete = arcade.color. FEKETE
szöveg = f"Egészség: {self.player_health}"
arcade.draw_text (szöveg, 10, 10, fekete, 14)

Egészségfejlesztés

Az egészségfejlesztések bevezetéséhez speciális objektumokat hozhat létre, amelyek javítják a játékos egészségét, amikor ütköznek velük. Íme egy példa a funkció megvalósítására:

# Az update() metóduson belül
ha arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Távolítsa el a bekapcsolást a játékból
self.power_up.kill()

Változatos ellenségtípusok

Ha mélységet szeretne adni a játéknak, különféle típusú ellenségeket vezethet be, amelyek különböző szintű sebzést okoznak a játékosnak. Ez stratégiai elemet ad, és változatosabb játékélményeket tesz lehetővé. Íme a funkció megvalósítása:

# Az update() metóduson belül
ha arcade.check_for_collision (self.player, self.enemy):
ha self.ellenség.típus == "gyenge":
self.player_health -= 5
elif self.ellenség.típus == "erős":
self.player_health -= 20

Ha beépíti ezeket a kiegészítő funkciókat az egészségügyi rendszer megvalósításába, dinamikusabb és nagyobb kihívást jelentő játékélményt teremthet játékosai számára.

Bevált gyakorlatok az egészségügyi rendszer számára

Amikor egészségügyi rendszert implementál az arcade játékban, fontos, hogy kövesse a bevált gyakorlatokat, hogy a rendszer robusztus és hatékony legyen. Íme néhány a bevált gyakorlatok közül, amelyeket érdemes szem előtt tartani:

Legyen moduláris

Tartsa az egészségügyi rendszer funkcióit egy külön osztályban vagy modulban, hogy moduláris maradjon, és könnyen újrafelhasználható legyen a különböző játékprojektekben. Ez elősegíti a kódrendszer szervezését és az aggodalmak szétválasztását.

Bevitel ellenőrzése és biztosítékok

Végezze el a bemenet érvényesítését, hogy megakadályozza, hogy a kód érvénytelen állapotértékeket rendeljen hozzá. Ugyanezeknek a biztosítékoknak kell védeniük az érvénytelen egészségügyi értékek ellen, amikor károsodás vagy gyógyulás következik be.

Mentés és betöltés mechanizmus

Valósítson meg egy mentési és betöltési mechanizmust, amely magában foglalja a játékos egészségi állapotát. Ez lehetővé teszi a játékosok számára, hogy a játékból való kilépés után is folytathassák a játékot a fejlődésükkel, beleértve az egészségi állapotukat is.

Tesztelés és hibakezelés

Alaposan tesztelje az egészségügyi rendszer megvalósítását, hogy ellenőrizze annak helyességét és megbízhatóságát. Használjon megfelelő hibakezelési technikákat a kivételek és szélsőséges esetek hatékony kezelésére.

Következetes egészségügyi visszajelzés

Következetes és egyértelmű visszajelzést adjon a játékosnak egészségi állapotáról. Hangeffektusokat adhat hozzá, vizuális jelzések vagy akár tapintható visszajelzések, amelyek biztosítják, hogy a játékosok ismerjék egészségi állapotukat a játékban, és megalapozott döntéseket tudjanak hozni játék közben.

A bevált gyakorlatok követésével robusztus és hatékony egészségügyi rendszert hozhat létre, amely javítja az arcade játék játékélményét, miközben megőrzi a kód minőségét és olvashatóságát.

Tedd szórakoztatóbbá a játékokat az egészségügyi rendszerrel

Egészségügyi rendszer hozzáadása a játékhoz jelentősen javíthatja az általános játékos élményt. Bevezeti a kockázat és a kihívás elemét, vonzóbbá és kifizetődőbbé téve a játékmenetet.

Az egészség vizuális megjelenítése lehetővé teszi a játékosok számára, hogy könnyen felmérjék jelenlegi állapotukat, növelve az elmerülést és a stratégiai döntéshozatalt.