Želite li usavršiti rješavanje opasnosti u svojoj igri? Pretvorite živote u zdravlje i dodajte dodatnu dimenziju svom igranju.
Dodavanje zdravstvenog sustava vašoj arkadnoj igri može poboljšati iskustvo igrača i može dodati dodatnu razinu izazova i angažmana. Možete stvoriti impresivnije iskustvo igranja s prikazom zdravlja igrača i mehanike za oštećenje i liječenje.
Srećom, implementacija zdravstvenog sustava u Pythonu pomoću Arcade biblioteke je jednostavna i zahtijeva samo nekoliko koraka.
Stvorite jednostavnu igru
Prvi, instalirajte pip na svoj uređaj i koristite donju naredbu za instaliranje arkadne knjižnice:
pip instaliraj arkadu
Nakon toga, počnite stvarati jednostavnu igru koristeći Arcade biblioteku. Ova igra će sadržavati lik igrača koji se može kretati lijevo, desno, gore i dolje i neprijateljski objekt koji predstavlja prijetnju igraču.
Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.
Stvorite novu datoteku pod nazivom jednostavna igra.py i dodajte donji kod:
uvoz arkada
# Postavite dimenzije prozora
SCREEN_WIDTH = 800
VISINA_EKRANA = 600# Postavite brzinu kretanja igrača
PLAYER_MOVEMENT_SPEED = 5
bijelo = arkada.boja. BIJELA
plava = arkada.boja. PLAVA
crvena = arkada.boja. CRVENArazredaGameWindow(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)
arcade.set_background_color (bijela)# Stvorite objekte igrača i neprijatelja
self.player = arkada. SpriteCircle(30, plava)
sam.neprijatelj = arkada. SpriteCircle(30, Crvena)
self.player.center_x = 100
self.player.center_y = 100
sebi.neprijatelj.centar_x = 400
self.neprijatelj.centar_y = 300defizvlačenje(sebe):
arcade.start_render()
self.player.draw()
self.neprijatelj.draw()defAžuriraj(sam, delta_vrijeme):
proćidefna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
self.player.center_x -= BRZINA_KRETANJA_IGRAČA
elif ključ == arkada.ključ. PRAVO:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif ključ == arkada.ključ. GORE:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif ključ == arkada.ključ. DOLJE:
self.player.center_y -= BRZINA_KRETANJA_IGRAČAdefglavni():
igra = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arkada.run()
ako __ime__ == "__glavni__":
glavni()
Trebali biste vidjeti prozor koji sadrži dva znaka, predstavljena plavim i crvenim krugovima:
Za implementaciju zdravstvenog sustava definirati varijable i konstante vezane uz zdravlje. Koristit ćete ih za praćenje trenutnog zdravlja igrača i određivanje pravila za oštećenje i liječenje. Dodajte sljedeći kod unutar GameWindow razred:
razredaGameWindow(arkada. Prozor):
def__u tome__(ja, širina, visina):
# ...
# Varijable i konstante povezane sa zdravljem
self.player_health = 100# zdravstvene točke izliječene u sekundi
self.heal_rate = 1# Timer za ozdravljenje
self.heal_timer = 0defAžuriraj(sam, delta_vrijeme):
# ...
# Ažurirajte mjerač vremena ozdravljenja
self.heal_timer += delta_vrijeme# Izliječite zdravlje igrača svake 2 sekunde
ako self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0
# Osigurajte da zdravlje ne premaši maksimalnu vrijednost
ako self.player_health > 100:
self.player_health = 100
Implementacija mehanike oštećenja i liječenja
Za implementaciju mehanike oštećenja i liječenja, otkriti sudare između igrača i neprijatelja. Smanjite igračevo zdravlje kada se sudare s neprijateljem i ozdravite igračevo zdravlje svake 2 sekunde kada se ne sudaraju. Izmijenite Ažuriraj() metodu i dodajte sljedeći kod:
razredaGameWindow(arkada. Prozor):
def__u tome__(ja, širina, visina):
# ...defAžuriraj(sam, delta_vrijeme):
# Otkrijte sudare između igrača i neprijatelja
ako arcade.check_for_collision (self.player, self.nenemy):
self.player_health -= 5
# ...
Upravljanje scenarijima smrti igrača i završetka igre
Za upravljanje scenarijima smrti igrača i završetka igre, provjerite je li zdravlje igrača doseglo nulu ili niže. Ako zdravlje padne na nulu, smatrajte igrača mrtvim i završite igru. Izmijenite Ažuriraj() metoda sa sljedećim kodom:
razredaGameWindow(arkada. Prozor):
def__u tome__(ja, širina, visina):
# ...defAžuriraj(sam, delta_vrijeme):
# ...# Provjerite je li zdravlje igrača nula ili ispod
ako self.player_health <= 0:
# Završi igru
arcade.close_window()
# ...
Vizualizacija trake zdravlja
Vizualni prikaz zdravlja igrača može uvelike poboljšati iskustvo igranja. Napravite traku zdravlja pomoću pravokutnika za prikaz trenutne razine zdravlja. Stvorite novu datoteku pod nazivom traka zdravlja.py i dodajte kod sa sljedećim ažuriranjima:
razredaGameWindow(arkada. Prozor):
def__u tome__(ja, širina, visina):
# ...defizvlačenje(sebe):
arcade.start_render()
self.player.draw()
self.neprijatelj.draw()
siva = arkada.boja. SVIJETLO SIVA
zelena = arkada.boja. ZELENO# Nacrtajte traku zdravlja
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, siva)health_width = self.player_health / 100 * SCREEN_WIDTH
arcade.draw_rectangle_filled (health_width // 2, 20,
zdravstvena_širina, 20, zelena)
Ispod je izlaz:
Uključujući dodatne značajke
Možete dodatno poboljšati zdravstveni sustav s više značajki, poput onih u nastavku.
Numerički prikaz zdravlja
Osim trake zdravlja, možete prikazati preostalo zdravlje kao numeričku vrijednost na zaslonu. To daje preciznu indikaciju zdravstvenog stanja igrača. Dodajte sljedeći kod unutar on_draw() metoda:
# Unutar on_draw() metode
crno = arkada.boja. CRNO
tekst = f"Zdravlje: {self.player_health}"
arcade.draw_text (tekst, 10, 10, crno, 14)
Zdravstvena pojačanja
Da biste uveli poboljšanja zdravlja, možete izraditi posebne objekte koji povećavaju zdravlje igrača kada se sudare s njima. Evo primjera kako možete implementirati ovu značajku:
# Unutar metode update().
ako arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20
# Uklonite pojačanje iz igre
self.power_up.kill()
Različite vrste neprijatelja
Da biste svojoj igri dodali dubinu, možete uvesti različite vrste neprijatelja koji nanose različite razine štete igraču. To dodaje strateški element i omogućuje raznolikija iskustva igranja. Evo implementacije ove značajke:
# Unutar metode update().
ako arcade.check_for_collision (self.player, self.nenemy):
ako sebi.neprijatelj.tip == "slab":
self.player_health -= 5
elif sebi.neprijatelj.tip == "jak":
self.player_health -= 20
Uključivanjem ovih dodatnih značajki u implementaciju vašeg zdravstvenog sustava, možete stvoriti dinamičnija i izazovnija iskustva igranja za svoje igrače.
Najbolje prakse za zdravstveni sustav
Prilikom implementacije zdravstvenog sustava u svoju arkadnu igru, važno je slijediti najbolju praksu kako biste osigurali da je sustav robustan i učinkovit. Evo nekoliko najboljih postupaka koje treba imati na umu:
Učinite to modularnim
Zadržite funkcionalnost zdravstvenog sustava unutar zasebne klase ili modula kako bi bio modularan i lako se ponovno koristio u različitim projektima igara. Ovo promiče organizaciju koda i razdvajanje problema.
Validacija unosa i zaštitne mjere
Implementirajte provjeru valjanosti unosa kako biste spriječili da vaš kod dodjeljuje nevažeće vrijednosti zdravlja. Iste zaštitne mjere trebale bi štititi od nevažećih zdravstvenih vrijednosti kada dođe do oštećenja ili zacjeljivanja.
Mehanizam za spremanje i učitavanje
Implementirajte mehanizam spremanja i učitavanja koji uključuje zdravstveno stanje igrača. To omogućuje igračima da nastave igru s netaknutim napretkom, uključujući svoje zdravlje, čak i nakon izlaska iz igre.
Testiranje i rješavanje grešaka
Temeljito testirajte implementaciju zdravstvenog sustava kako biste provjerili njegovu ispravnost i pouzdanost. Koristite odgovarajuće tehnike rukovanja pogreškama za učinkovito rukovanje iznimkama i rubnim slučajevima.
Dosljedne povratne informacije o zdravlju
Pružite dosljednu i jasnu povratnu informaciju igraču o njegovom zdravstvenom stanju. Možete dodati audio efekte, vizualne znakove ili čak taktilne povratne informacije, osiguravajući da igrači znaju svoje zdravstveno stanje u igri i mogu donositi informirane odluke tijekom igranja.
Slijedeći ove najbolje prakse, možete stvoriti robustan i učinkovit zdravstveni sustav koji poboljšava iskustvo igranja vaše arkadne igre uz zadržavanje kvalitete i čitljivosti koda.
Učinite igre zabavnijim uz zdravstveni sustav
Dodavanje zdravstvenog sustava vašoj igri može značajno poboljšati cjelokupno iskustvo igrača. Uvodi element rizika i izazova, čineći igru privlačnijom i korisnijom.
Vizualni prikaz zdravlja omogućuje igračima da lako procijene svoj trenutni status, povećavajući udubljenost i strateško donošenje odluka.