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ą:
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. RAUDONAklasėŽ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 = 300defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()defatnaujinti(savaime, delta_laikas):
praeitidefyra_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_SPEEDdefpagrindinis():
ž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 = 0defatnaujinti(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.