Vezessen be olyan elemeket, mint a játékosok sebzése, a gyógyító mechanika és egyebek azáltal, hogy egészségügyi rendszert épít be játékaiba.

Az egészségügyi rendszer bevezetése egy játékban nagyban javíthatja a játékélményt, és további kihívást és stratégiát adhat hozzá. A PyGame robusztus eszköz- és funkciókészletet biztosít az egészségügyi rendszer beépítéséhez, megkönnyítve az interaktív élmények létrehozását.

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

Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a rendszerére. Ezzel a paranccsal telepítheti a pygame könyvtár:

pip install pygame

Ezt követően hozzon létre egy nevű fájlt simple-game.py és kezdje egy egyszerű játék létrehozásával, amelyben a játékos balra és jobbra mozoghat.

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

Ebben az alapvető játékhurokban a játékos célja az lesz, hogy elkerülje az ellenséggel való ütközést.

import pygame
import véletlen

# Inicializálja a PyGame-et
pygame.init()

instagram viewer

# Állítsa be a játékablakot
ablak_szélessége, ablak_magassága = 800, 600
ablak = pygame.display.set_mode((ablak_szélessége, ablak_magassága))
pygame.display.set_caption("Egészségügyi rendszer bemutató")

# Játékos attribútumok
player_width, player_height = 50, 50
player_x, player_y = ablak_szélessége // 2, window_height - player_height - 10
player_speed = 1

# Ellenséges tulajdonságok
ellenség_szélesség, ellenség_magasság = 50, 50
ellenség_x, ellenség_y = random.randint(0, window_width - enemy_width), 0
enemy_speed = 0.3

# Játékhurok
futás = Igaz
míg futás:
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis

# Mozgassa a lejátszót balra vagy jobbra
keys = pygame.key.get_pressed()
ha kulcsok[pygame. K_LEFT] és játékos_x > 0:
player_x -= player_speed
ha kulcsok[pygame. K_JOBBRA] és player_x < window_width - player_width:
player_x += player_speed

# Mozgasd lefelé az ellenséget
ellenség_y += ellenséges_sebesség

# Rajzolj játéktárgyakat
window.fill((0, 0, 0)) # Törölje a képernyőt
pygame.draw.rect (ablak, (255, 0, 0),
(player_x, player_y,
player_width, player_height))
pygame.draw.rect (ablak, (0, 255, 0),
(ellenség_x, ellenség_y,
enemy_width, enemy_height)) # Rajzolj ellenséget
pygame.display.update()

pygame.quit()

Futtassa a kódot, és megjelenik egy ablak egy játékos karakterrel, amelyet a bal és jobb nyílbillentyűkkel vezérelhet.

Most, hogy megvan a játék alapbeállítása, határozza meg a játékos egészségi állapotával kapcsolatos változókat és állandókat. Használhat egy egyszerű egészségügyi rendszert, ahol a játékos egészségi állapotát számértékkel ábrázolhatja. A játékos maximális életerejének és az ellenség által okozott sebzés mértékének állandóit is megadhatja.

Állítsd a játékos kezdeti életerejét 100-ra, a maximális életerőt 100-ra, és állítsd az ellenség sebzését 20-ra. Ezek az értékek a játék speciális igényei szerint módosíthatók.

# Játékos egészsége
player_health = 100
max_health = 100
ellenséges_kár = 20

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

A sebzés és a gyógyító mechanika bevezetéséhez észlelnie kell a játékos és az ellenség közötti ütközéseket, és kezelnie kell a megfelelő állapotváltozásokat. Olyan mechanizmust is bevezethet, amely meggyógyítja a játékost, amikor elmozdul a képernyőről.

Ellenőrizze, hogy van-e a ütközés a játékos között az ellenséget pedig határoló téglalapjaik összehasonlításával. Ha ütközést észlel, vonja le az ellenség sebzésének értékét a játékos egészségi állapotából.

Továbbá, ha a lejátszó elmozdul a képernyő tetejéről (játékos_y < 0), adjon hozzá 10-et az egészségi állapotukhoz, és ügyeljen arra, hogy az ne haladja meg a maximális életerőt. Ez létrehoz egy gyógyító mechanikát, és visszaállítja a játékos pozícióját a képernyő aljára.

Hozzon létre egy új nevű fájlt kár- és gyógyulás.py és adja hozzá a kódot az alábbi frissítésekkel:

# A játékhurokon belül, az ellenség pozíciójának frissítése után
# A játékos és az ellenség közötti ütközés észlelése
ha játékos_x < ellenség_x + ellenség_szélessége és \
player_x + player_width > enemy_x és \
játékos_y < ellenség_y + ellenség_magasság \
és player_y + player_height > enemy_y:
player_health -= ellenséges_kár
nyomtatás (player_health)

# Gyógyítsa meg a lejátszót, amikor elmozdul a képernyőről
ha játékos_y < 0:
player_health += 10
nyomtatás (player_health)
ha player_health > max_health:
player_health = max_health
játékos_y = ablak_magassága - játékos_magassága - 10

Alább látható a kimenet:

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őriznie kell, hogy a játékos egészségi állapota eléri-e a nullát. Ha igen, jelenítse meg a Játék vége üzenetet, és indítsa újra a játékot.

Adjon hozzá egy ellenőrzést, hogy ellenőrizze, hogy a játékos egészségi állapota nulla alá esik-e vagy egyenlő-e. Ha ez a feltétel igaz, nyomtassa ki Játék vége és állítsa vissza a játékos egészségi állapotát és pozícióját.

Hozzon létre egy új nevű fájlt manager-player-death.py és módosítsa a kódot az alábbi frissítésekkel:

# A játékos pozíciójának frissítése után

# Ellenőrizze, hogy a játékos egészségi állapota eléri-e a nullát
ha player_health <= 0:
nyomtatás("Játék vége")
player_health = max_health
player_x = ablak_szélessége // 2
játékos_y = ablak_magassága - játékos_magassága - 10

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

Az egészségügyi rendszer további fejlesztése érdekében további funkciókat is beépíthet. Alább egy példa:

Erősítések

Határozza meg a bekapcsolás attribútumait, például méreteit és helyzetét. Állíts be egy életerőt is, amelyet a játékos kap, amikor ütközik a bekapcsoláskor.

A játékhurokon belül észlelje a játékos és a bekapcsoló egység közötti ütközéseket. Ha ütközés történik, növelje a játékos életerejét a bekapcsolás állapotértékével, ügyelve arra, hogy az ne haladja meg a maximális életerőt. Ezután véletlenszerűen helyezze át a bekapcsológombot a képernyőn. Végül rajzolja meg a bekapcsoló objektumot a képernyőre kék téglalap segítségével.

Hozzon létre egy új nevű fájlt power-up.py és adja hozzá a kódot az alábbi frissítésekkel:

# Határozza meg a bekapcsolási attribútumokat
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# A játékhurok belsejében, a játékos pozíciójának frissítése után
# A lejátszó és a bekapcsolás közötti ütközés észlelése
ha player_x < power_up_x + power_up_width és\
player_x + player_width > power_up_x \
és player_y < power_up_y + power_up_height\
és player_y + player_height > power_up_y:
player_health += power_up_health_value
ha player_health > max_health:
player_health = max_health
power_up_x, power_up_y = 200,200

# Rajzolj bekapcsoló objektumot
pygame.draw.rect (ablak, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))

Alább látható a kimenet:

Minden további funkcióhoz meghatározhatja a szükséges változókat és állandókat, és megvalósíthatja a megfelelő mechanikát a játékhurokon belül.

Az egészségügyi rendszer legjobb gyakorlatai

Amikor egészségügyi rendszert implementál a PyGame-ben, tartsa szem előtt a következő bevált gyakorlatokat:

Eseményvezérelt rendszerek megvalósítása

Ahelyett, hogy folyamatosan ellenőrzi az ütközéseket vagy az állapotváltozásokat a játékhurokon belül, fontolja meg az eseményvezérelt rendszerek használatát. A PyGame eseménykezelési képességeket biztosít, amelyek lehetővé teszik az egészséggel kapcsolatos műveletek indítását konkrét események alapján, például ütközési események vagy bekapcsolási események.

Egyensúlyozza az egészségügyi értékeket

A kiegyensúlyozott játékélmény érdekében állítsd be a játékban az egészségi értékeket, a sebzési értékeket és a gyógyulási arányokat. A játéktesztelés és a játékosok visszajelzéseinek összegyűjtése segíthet finomhangolni ezeket az értékeket az optimális játékmenet érdekében.

Visszajelzést

Gondoskodjon arról, hogy a játékos világos és értelmes visszajelzést kapjon egészségi állapotáról. Jelenítse meg jól láthatóan az állapotsávot a képernyőn, használjon vizuális jeleket, például színváltozásokat vagy animációkat a károsodás vagy gyógyulás jelzésére, és hangos vagy vizuális jelzéseket adjon amikor a játékos egészségi állapota eléri a kritikus szintet.

Ezen bevált gyakorlatok követésével robusztus és lebilincselő egészségügyi rendszert hozhat létre, amely hozzájárul a magával ragadó játékélményhez.

Tedd vonzóbbá a játékokat a Health Bar segítségével

Az egészségügyi rendszer megvalósítása nemcsak kihívást jelent, hanem a játékokat is vonzóbbá teszi a játékosok számára. Az egészség vizuális megjelenítésével, például egészségügyi sávokkal, a játékosok könnyen felmérhetik jelenlegi állapotukat, és stratégiai döntéseket hozhatnak. Sőt, ha szinteket adsz a játékodhoz, az tovább javíthatja a játékélményt.