Norite patobulinti savo žaidimo pavojaus valdymą? Paverskite gyvenimus sveikata ir suteikite žaidimui papildomos dimensijos.

Sveikatos sistemos įtraukimas į savo arkadinį žaidimą gali pagerinti žaidėjo patirtį ir suteikti papildomo iššūkio ir įsitraukimo. Galite sukurti įtraukiančią žaidimo patirtį, parodydami žaidėjo sveikatą ir mechaniką dėl žalos ir gydymo.

Laimei, sveikatos sistemos įdiegimas Python naudojant „Arcade“ biblioteką yra paprastas ir reikalauja tik kelių žingsnių.

Sukurkite paprastą žaidimą

Pirmas, įdiekite pip savo įrenginyje ir naudokite toliau pateiktą komandą, kad įdiegtumėte arkadų biblioteką:

pip diegimo pasažas

Po to pradėkite kurdami paprastą žaidimą naudodami „Arcade“ biblioteką. Šiame žaidime bus žaidėjo personažas, galintis judėti kairėn, dešinėn, aukštyn ir žemyn, ir priešo objektas, kuris kelia grėsmę žaidėjui.

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

Sukurkite naują failą pavadinimu paprastas žaidimas.py ir pridėkite žemiau esantį kodą:

instagram viewer
importuoti arkada

# Nustatykite lango matmenis
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Nustatykite žaidėjo judėjimo greitį
PLAYER_MOVEMENT_SPEED = 5
balta = arkada.spalva. BALTAS
mėlyna = arkada.spalva. MĖLYNA
raudona = arkada.spalva. RAUDONA

klasėŽaidimo langas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
arcade.set_background_color (balta)

# Sukurkite žaidėjo ir priešo objektus
self.player = arkada. SpriteCircle(30, mėlyna)
save.priešas = arkada. SpriteCircle(30, raudona)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enem.center_y = 300

defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()

defatnaujinti(savaime, delta_laikas):
praeiti

defyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
elifas raktas == arcade.key. DEŠINĖJE:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elifas raktas == arcade.key. AUKŠTYN:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elifas raktas == arcade.key. ŽEMYN:
self.player.center_y -= PLAYER_MOVEMENT_SPEED

defpagrindinis():
žaidimas = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

jeigu __vardas__ == "__pagrindinis__":
pagrindinis ()

Turėtumėte pamatyti langą, kuriame yra du simboliai, pavaizduoti mėlynais ir raudonais apskritimais:

Norėdami įgyvendinti sveikatos sistemą, apibrėžkite su sveikata susijusius kintamuosius ir konstantas. Jas naudosite norėdami sekti esamą žaidėjo sveikatą ir nustatyti žalos bei gydymo taisykles. Įtraukite šį kodą viduje Žaidimo langas klasė:

klasėŽaidimo langas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
# ...
# Su sveikata susiję kintamieji ir konstantos
self.player_health = 100

# sveikatos taškai išgydyti per sekundę
self.heal_rate = 1

# Gydymo laikmatis
self.heal_timer = 0

defatnaujinti(savaime, delta_laikas):
# ...
# Atnaujinkite gydymo laikmatį
self.heal_timer += delta_time

# Gydykite žaidėjo sveikatą kas 2 sekundes
jeigu self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Įsitikinkite, kad sveikata neviršija didžiausios vertės
jeigu self.player_health > 100:
self.player_health = 100

Žalos ir gydymo mechanikos įgyvendinimas

Norėdami įgyvendinti žalos ir gydymo mechaniką, aptikti žaidėjo ir priešo susidūrimus. Sumažinkite žaidėjo sveikatą jam susidūrus su priešu ir gydykite žaidėjo sveikatą kas 2 sekundes, kai jie nesusiduria. Modifikuoti atnaujinti () metodą ir pridėkite šį kodą:

klasėŽaidimo langas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
# ...

defatnaujinti(savaime, delta_laikas):
# Aptikti žaidėjo ir priešo susidūrimus
jeigu arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5

# ...

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

Norėdami valdyti žaidėjo mirties ir žaidimo pabaigos scenarijus, patikrinkite, ar žaidėjo sveikata nesiekia nulio ar žemesnė. Jei sveikata nukrenta iki nulio, laikykite žaidėją mirusiu ir baigkite žaidimą. Modifikuoti atnaujinti () metodas su šiuo kodu:

klasėŽaidimo langas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
# ...

defatnaujinti(savaime, delta_laikas):
# ...

# Patikrinkite, ar žaidėjo sveikata lygi nuliui ar žemesnė
jeigu self.player_health <= 0:
# Baigti žaidimą
arcade.close_window()

# ...

Sveikatos juostos vizualizavimas

Vaizdinis žaidėjo sveikatos vaizdas gali labai pagerinti žaidimo patirtį. Sukurkite sveikatos juostą naudodami stačiakampius, kad parodytumėte esamą sveikatos lygį. Sukurkite naują failą pavadinimu Health-bar.py ir pridėkite kodą su toliau pateiktais atnaujinimais:

klasėŽaidimo langas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
# ...

defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()
pilka = arkada.spalva. ŠVIESIAI PILKA
žalia = arkada.spalva. ŽALIAS

# Nupieškite sveikatos juostą
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, pilka)

health_width = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
Health_width, 20, žalias)

Žemiau yra išvestis:

Įskaitant papildomas funkcijas

Galite toliau patobulinti sveikatos sistemą naudodami daugiau funkcijų, pvz., toliau pateiktų.

Skaitmeninis sveikatos ekranas

Be sveikatos juostos, ekrane galite rodyti likusią būseną kaip skaitinę reikšmę. Tai tiksliai parodo žaidėjo sveikatos būklę. Įtraukite šį kodą viduje on_draw() metodas:

# Metodo on_draw() viduje
juoda = arkadinė.spalva. JUODAS
tekstas = f"Sveikata: {self.player_health}"
arcade.draw_text (tekstas, 10, 10, juoda, 14)

Sveikatos stiprinimas

Norėdami pristatyti sveikatos patobulinimus, galite sukurti specialius objektus, kurie sustiprina žaidėjo sveikatą, kai jie susiduria su jais. Štai pavyzdys, kaip galite įdiegti šią funkciją:

# Atnaujinimo() metodo viduje
jeigu arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Pašalinkite maitinimo įjungimą iš žaidimo
self.power_up.kill()

Įvairūs priešų tipai

Norėdami suteikti žaidimui gilumo, galite pristatyti skirtingus priešų tipus, kurie žaidėjui daro įvairaus lygio žalą. Tai papildo strateginį elementą ir suteikia įvairesnių žaidimų patirties. Štai šios funkcijos įgyvendinimas:

# Atnaujinimo() metodo viduje
jeigu arcade.check_for_collision (self.player, self.enemy):
jeigu savęs.priešas.tipas == "silpnas":
self.player_health -= 5
elifas savęs.priešas.tipas == "stiprus":
self.player_health -= 20

Įtraukdami šias papildomas funkcijas į savo sveikatos sistemos diegimą, savo žaidėjams galite sukurti dinamiškesnę ir sudėtingesnę žaidimo patirtį.

Geriausia sveikatos sistemos praktika

Diegiant sveikatos sistemą savo arkadiniame žaidime, svarbu laikytis geriausios praktikos, kad sistema būtų tvirta ir efektyvi. Štai keletas geriausių praktikų, kurių reikia nepamiršti:

Padarykite jį moduliniu

Laikykite sveikatos sistemos funkcijas atskiroje klasėje arba modulyje, kad ji būtų modulinė ir būtų lengvai pakartotinai naudojama įvairiuose žaidimų projektuose. Tai skatina kodo organizavimą ir problemų atskyrimą.

Įvesties patvirtinimas ir apsaugos priemonės

Įdiekite įvesties patvirtinimą, kad jūsų kodas nepriskirtų netinkamų sveikatos verčių. Tos pačios apsaugos priemonės turėtų apsaugoti nuo negaliojančių sveikatos verčių, kai atsiranda žala arba gijimas.

Įrašymo ir įkėlimo mechanizmas

Įdiekite išsaugojimo ir įkėlimo mechanizmą, apimantį žaidėjo sveikatos būklę. Tai leidžia žaidėjams tęsti žaidimą nepažeisdami progreso, įskaitant sveikatą, net ir išėjus iš žaidimo.

Testavimas ir klaidų valdymas

Kruopščiai išbandykite sveikatos sistemos diegimą, kad patikrintumėte jo teisingumą ir patikimumą. Naudokite tinkamus klaidų apdorojimo metodus, kad išimtys ir kraštutiniai atvejai būtų veiksmingai tvarkomi.

Nuoseklus atsiliepimai apie sveikatą

Pateikite žaidėjui nuoseklų ir aiškų atsiliepimą apie jo sveikatos būklę. Galite pridėti garso efektų, vaizdiniai ženklai ar net haptinis grįžtamasis ryšys, užtikrinantis, kad žaidėjai žinotų savo sveikatos būklę žaidime ir žaidimo metu galėtų priimti pagrįstus sprendimus.

Laikydamiesi šios geriausios praktikos, galite sukurti tvirtą ir veiksmingą sveikatos sistemą, kuri pagerins jūsų arkadinio žaidimo patirtį, išlaikant kodo kokybę ir skaitomumą.

Padarykite žaidimus linksmesnius naudodami sveikatos sistemą

Sveikatos sistemos įtraukimas į žaidimą gali žymiai pagerinti bendrą žaidėjo patirtį. Tai suteikia rizikos ir iššūkio elementą, todėl žaidimas tampa patrauklesnis ir naudingesnis.

Vizualus sveikatos vaizdavimas leidžia žaidėjams lengvai įvertinti savo dabartinę būseną, didinant pasinėrimą ir priimant strateginius sprendimus.