Įveskite į žaidimus sveikatos sistemą įtraukdami tokius elementus kaip žaidėjo žala, gydymo mechanika ir kt.

Sveikatos sistemos įdiegimas žaidime gali labai pagerinti žaidimo patirtį ir pridėti papildomą iššūkių ir strategijos sluoksnį. „PyGame“ suteikia tvirtą įrankių ir funkcijų rinkinį, skirtą sveikatos sistemai įtraukti, todėl lengva kurti interaktyvią patirtį.

Sukurkite paprastą žaidimą

Prieš pradėdami įsitikinkite, kad turite pip įdiegtas jūsų sistemoje. Naudokite šią komandą norėdami įdiegti pygame biblioteka:

pip įdiegti pygame

Po to sukurkite failą pavadinimu paprastas žaidimas.py ir pradėkite kurdami paprastą žaidimą, kuriame žaidėjas gali judėti į kairę ir į dešinę.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Šioje pagrindinėje žaidimo kilpoje žaidėjo tikslas bus išvengti susidūrimo su priešu.

importuoti pygame
importuoti atsitiktinis

# Inicijuoti PyGame
pygame.init()

# Nustatykite žaidimo langą
lango_plotis, lango_aukštis =

instagram viewer
800, 600
langas = pygame.display.set_mode((lango_plotis, lango_aukštis))
pygame.display.set_caption(„Sveikatos sistemos demonstracija“)

# Žaidėjo atributai
žaidėjo_plotis, žaidėjo_aukštis = 50, 50
žaidėjas_x, grotuvas_y = lango_plotis // 2, lango_aukštis - grotuvo_aukštis - 10
žaidėjo_greitis = 1

# Priešo atributai
priešo_plotis, priešo_aukštis = 50, 50
priešas_x, priešas_y = random.randint(0, lango_plotis – priešo_plotis), 0
priešo_greitis = 0.3

# Žaidimo kilpa
bėgimas = Tiesa
kol veikia:
dėl įvykis in pygame.event.get():
jeigu event.type == pygame. UŽDARYTI:
bėgimas = Netiesa

# Perkelkite grotuvą į kairę arba dešinę
klavišai = pygame.key.get_pressed()
jeigu raktai[pygame. K_LEFT] ir žaidėjas_x > 0:
žaidėjas_x - = žaidėjo_greitis
jeigu raktai[pygame. K_RIGHT] ir player_x < window_width - player_width:
žaidėjas_x += grotuvo_greitis

# Perkelkite priešą žemyn
priešas_y += priešo_greitis

# Nupieškite žaidimo objektus
window.fill((0, 0, 0)) # Išvalykite ekraną
pygame.draw.rect (langas, (255, 0, 0),
(žaidėjas_x, žaidėjas_y,
žaidėjo_plotis, žaidėjo_aukštis))
pygame.draw.rect (langas, (0, 255, 0),
(priešas_x, priešas_y,
priešo_plotis, priešo_aukštis)) # Nupieškite priešą
pygame.display.update()

pygame.quit()

Paleiskite kodą ir pamatysite langą su žaidėjo simboliu, kurį galėsite valdyti kairiuoju ir dešiniuoju rodyklių klavišais.

Dabar, kai turite pagrindinę žaidimo sąranką, apibrėžkite kintamuosius ir konstantas, susijusias su žaidėjo sveikata. Galite naudoti paprastą sveikatos sistemą, kurioje žaidėjo sveikatą galite pavaizduoti skaitine verte. Taip pat galite apibrėžti maksimalios žaidėjo sveikatos ir priešo padarytos žalos dydžio konstantas.

Pradinę žaidėjo sveikatą nustatykite į 100, maksimalią gyvybę nustatykite kaip 100, o priešo žalą nustatykite į 20. Šios vertės gali būti koreguojamos pagal konkrečius jūsų žaidimo poreikius.

# Žaidėjo sveikata
žaidėjo_sveikata = 100
max_sveikata = 100
priešo_žala = 20

Žalos ir gydymo mechanikos įgyvendinimas

Norėdami įdiegti žalos ir gydymo mechaniką, turite aptikti žaidėjo ir priešo susidūrimus ir tvarkyti atitinkamus sveikatos pokyčius. Taip pat galite įdiegti mechanizmą, skirtą išgydyti grotuvą, kai jis pasišalina nuo ekrano.

Patikrinkite, ar yra a žaidėjo susidūrimas o priešą lygindami jų ribojančius stačiakampius. Jei aptinkamas susidūrimas, atimkite priešo padarytą žalą iš žaidėjo sveikatos.

Be to, jei grotuvas pasislenka nuo ekrano viršaus (žaidėjas_y < 0), pridėkite 10 prie jų sveikatos ir įsitikinkite, kad ji neviršija maksimalios sveikatos. Tai sukuria gydymo mechaniką ir iš naujo nustato žaidėjo padėtį ekrano apačioje.

Sukurkite naują failą pavadinimu žalos ir gijimo.py ir pridėkite kodą su toliau pateiktais atnaujinimais:

# Žaidimo ciklo viduje, atnaujinus priešo poziciją
# Aptikti žaidėjo ir priešo susidūrimą
jeigu žaidėjas_x < priešo_x + priešo_plotis ir \
player_x + player_width > enemy_x ir \
žaidėjas_y < priešo_y + priešo_aukštis \
ir žaidėjas_y + žaidėjo_aukštis > priešas_y:
žaidėjo_sveikata – = priešo_žala
spausdinti (player_health)

# Išgydykite grotuvą, kai jis nukrypsta nuo ekrano
jeigu žaidėjas_y < 0:
žaidėjo_sveikata += 10
spausdinti (player_health)
jeigu player_health > max_health:
žaidėjo_sveikata = maksimali_sveikata
žaidėjas_y = lango_aukštis - žaidėjo_aukštis - 10

Žemiau yra išvestis:

Žaidėjų mirties ir žaidimo pabaigos scenarijų valdymas

Norėdami valdyti žaidėjo mirties ir žaidimo pabaigos scenarijus, turite patikrinti, ar žaidėjo sveikata nepasiekia nulio. Jei taip, parodykite a Žaidimas baigtas žinutę ir paleiskite žaidimą iš naujo.

Pridėkite patikrinimą, kad pamatytumėte, ar žaidėjo sveikata nukrenta žemiau arba lygi nuliui. Jei ši sąlyga yra teisinga, atspausdinkite Žaidimas baigtas ir atkurti žaidėjo sveikatą bei padėtį.

Sukurkite naują failą pavadinimu manager-player-death.py ir pakeiskite kodą naudodami toliau nurodytus atnaujinimus:

# Atnaujinus žaidėjo poziciją

# Patikrinkite, ar žaidėjo sveikata nepasiekia nulio
jeigu žaidėjo_sveikata <= 0:
spausdinti ("Žaidimas baigtas")
žaidėjo_sveikata = maksimali_sveikata
player_x = lango_plotis // 2
žaidėjas_y = lango_aukštis - žaidėjo_aukštis - 10

Įskaitant papildomas funkcijas

Norėdami toliau tobulinti sveikatos sistemą, galite įtraukti papildomų funkcijų. Žemiau pateikiamas pavyzdys:

Sustiprinimai

Apibrėžkite įjungimo požymius, pvz., jo matmenis ir padėtį. Taip pat nustatykite sveikatos vertę, kurią žaidėjas įgis susidūręs su įjungimu.

Žaidimo ciklo metu aptikkite žaidėjo ir įjungimo susidūrimus. Jei įvyksta susidūrimas, padidinkite žaidėjo sveikatą įjungimo sveikatos verte ir įsitikinkite, kad ji neviršija maksimalios sveikatos vertės. Tada atsitiktinai pakeiskite įjungimo vietą ekrane. Galiausiai nupieškite įjungimo objektą ekrane naudodami mėlyną stačiakampį.

Sukurkite naują failą pavadinimu power-up.py ir pridėkite kodą su toliau pateiktais atnaujinimais:

# Apibrėžkite įjungimo atributus
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# Žaidimo ciklo viduje, atnaujinus žaidėjo poziciją
# Aptikti žaidėjo ir įjungimo susidūrimą
jeigu player_x < power_up_x + power_up_width ir\
player_x + player_width > power_up_x \
ir žaidėjas_y < power_up_y + power_up_height\
ir player_y + player_height > power_up_y:
žaidėjo_sveikata += power_up_health_value
jeigu player_health > max_health:
žaidėjo_sveikata = maksimali_sveikata
power_up_x, power_up_y = 200,200

# Nubrėžkite įjungimo objektą
pygame.draw.rect (langas, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
galios_aukštis))

Žemiau yra išvestis:

Kiekvienai papildomai funkcijai galite apibrėžti reikiamus kintamuosius ir konstantas bei įdiegti atitinkamą mechaniką žaidimo cikle.

Sveikatos sistemos geriausia praktika

Diegdami sveikatos sistemą PyGame, atminkite šiuos geriausios praktikos pavyzdžius:

Įdiekite įvykiais pagrįstas sistemas

Užuot nuolat tikrinę, ar žaidimo ciklo metu nėra susidūrimų ar sveikatos pokyčių, apsvarstykite galimybę naudoti įvykiais pagrįstas sistemas. „PyGame“ suteikia įvykių tvarkymo galimybes, leidžiančias suaktyvinti su sveikata susijusius veiksmus, pagrįstus konkrečiais įvykiais, pvz., susidūrimo įvykiais arba įjungimo įvykiais.

Subalansuokite sveikatos vertybes

Koreguokite savo žaidimo sveikatos vertes, žalos vertes ir gydymo greitį, kad užtikrintumėte subalansuotą žaidimo patirtį. Žaidimo testavimas ir žaidėjų atsiliepimų rinkimas gali padėti tiksliai sureguliuoti šias vertes, kad žaidimas būtų optimalus.

Pateikti atsiliepimą

Užtikrinkite, kad žaidėjas gautų aiškius ir reikšmingus atsiliepimus apie savo sveikatos būklę. Ekrane gerai parodykite sveikatos juostą, naudokite vaizdinius ženklus, pvz., spalvų pokyčius ar animaciją, kad nurodytumėte žalą ar gijimą, ir pateikti garso ar vaizdo užuominas kai žaidėjo sveikata pasiekia kritines ribas.

Vadovaudamiesi šiais geriausios praktikos pavyzdžiais galite sukurti tvirtą ir patrauklią sveikatos sistemą, kuri prisideda prie įtraukiančios žaidimo patirties.

Padarykite žaidimus patrauklesnius naudodami sveikatos juostą

Diegiant sveikatos sistemą ne tik atsiranda iššūkių, bet ir žaidimai tampa patrauklesni žaidėjams. Įtraukdami vaizdinius sveikatos vaizdus, ​​​​pvz., sveikatos juostas, žaidėjai gali lengvai įvertinti savo dabartinę būklę ir priimti strateginius sprendimus. Be to, žaidimo lygių pridėjimas gali dar labiau pagerinti žaidimo patirtį.