Želite izboljšati obvladovanje nevarnosti v svoji igri? Spremenite življenja v zdravje in svojemu igranju dodajte dodatno dimenzijo.
Dodajanje zdravstvenega sistema v vašo arkadno igro lahko izboljša izkušnjo igralca in doda dodatno plast izziva in angažiranosti. Ustvarite lahko bolj poglobljeno izkušnjo igranja s prikazom igralčevega zdravja in mehanike za poškodbe in zdravljenje.
Na srečo je izvajanje zdravstvenega sistema v Pythonu z uporabo knjižnice Arcade preprosto in zahteva le nekaj korakov.
Ustvari preprosto igro
Prvič, namestite pip na svojo napravo in uporabite spodnji ukaz za namestitev arkadne knjižnice:
pip install arkada
Nato začnite z ustvarjanjem preproste igre s knjižnico Arcade. Ta igra bo vsebovala lik igralca, ki se lahko premika levo, desno, gor in dol ter sovražni predmet, ki predstavlja grožnjo igralcu.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Ustvari novo datoteko z imenom simple-game.py in dodajte spodnjo kodo:
uvoz arkada
# Nastavite dimenzije okna
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600# Nastavite hitrost gibanja igralca
PLAYER_MOVEMENT_SPEED = 5
bela = arkadna.barva. BELA
modra = arkadna.barva. MODRA
rdeča = arkadna.barva. RDEČArazredGameWindow(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
arcade.set_background_color (bela)# Ustvarite predmete igralca in sovražnika
self.player = arkada. SpriteCircle(30, modra)
self.nemy = arkada. SpriteCircle(30, rdeča)
self.player.center_x = 100
self.player.center_y = 100
self.encer.center_x = 400
self.encer.center_y = 300defon_draw(sebe):
arcade.start_render()
self.player.draw()
self.enemy.draw()defnadgradnja(sam, delta_time):
prehoddefna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
elif ključ == arcade.key. PRAV:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif ključ == arcade.key. GOR:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif ključ == arcade.key. DOL:
self.player.center_y -= PLAYER_MOVEMENT_SPEEDdefglavni():
igra = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
če __ime__ == "__glavni__":
glavni ()
Videti bi morali okno z dvema znakoma, ki sta predstavljena z modrimi in rdečimi krogi:
Za izvajanje zdravstvenega sistema definirajte spremenljivke in konstante, povezane z zdravjem. Z njimi boste spremljali igralčevo trenutno zdravje in določili pravila za poškodbe in zdravljenje. Dodajte naslednjo kodo znotraj GameWindow razred:
razredGameWindow(arkadne. okno):
def__v__(jaz, širina, višina):
# ...
# Z zdravjem povezane spremenljivke in konstante
self.player_health = 100# Zdravstvene točke ozdravljene na sekundo
self.heal_rate = 1# Časovnik za zdravljenje
self.heal_timer = 0defnadgradnja(sam, delta_time):
# ...
# Posodobite časovnik zdravljenja
self.heal_timer += delta_time# Ozdravi igralčevo zdravje vsaki 2 sekundi
če self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0
# Zagotovite, da zdravje ne preseže največje vrednosti
če self.player_health > 100:
self.player_health = 100
Izvajanje mehanike poškodb in zdravljenja
Za izvajanje mehanike poškodb in zdravljenja, zaznavanje trkov med igralcem in sovražnikom. Zmanjšajte igralčevo zdravje, ko trči s sovražnikom, in ozdravite igralčevo zdravje vsaki 2 sekundi, ko se ne trčijo. Spremenite nadgradnja() in dodajte naslednjo kodo:
razredGameWindow(arkadne. okno):
def__v__(jaz, širina, višina):
# ...defnadgradnja(sam, delta_time):
# Zaznajte trke med igralcem in sovražnikom
če arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5
# ...
Upravljanje scenarijev smrti igralca in konca igre
Za upravljanje scenarijev smrti igralca in konca igre preverite, ali je igralčevo zdravje ničlo ali nižje. Če zdravje pade na nič, imejte igralca za mrtvega in končajte igro. Spremenite nadgradnja() metoda z naslednjo kodo:
razredGameWindow(arkadne. okno):
def__v__(jaz, širina, višina):
# ...defnadgradnja(sam, delta_time):
# ...# Preverite, ali je zdravje igralca nič ali manj
če self.player_health <= 0:
# Končaj igro
arcade.close_window()
# ...
Vizualizacija vrstice zdravja
Vizualna predstavitev igralčevega zdravja lahko močno izboljša izkušnjo igranja. Ustvarite vrstico zdravja s pravokotniki za prikaz trenutne zdravstvene ravni. Ustvari novo datoteko z imenom health-bar.py in dodajte kodo s spodnjimi posodobitvami:
razredGameWindow(arkadne. okno):
def__v__(jaz, širina, višina):
# ...defon_draw(sebe):
arcade.start_render()
self.player.draw()
self.enemy.draw()
siva = arkadna.barva. SVETLOSIVA
zelena = arkadna.barva. ZELENA# Narišite vrstico zdravja
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, siva)zdravje_širina = self.player_health / 100 * SCREEN_WIDTH
arcade.draw_rectangle_filled (health_width // 2, 20,
zdravje_širina, 20, zelena)
Spodaj je rezultat:
Vključno z dodatnimi funkcijami
Zdravstveni sistem lahko dodatno izboljšate z več funkcijami, kot so spodnje.
Številčni prikaz zdravja
Poleg zdravstvene vrstice lahko na zaslonu prikažete preostalo zdravstveno stanje kot številsko vrednost. To zagotavlja natančen prikaz zdravstvenega stanja igralca. Dodajte naslednjo kodo znotraj on_draw() metoda:
# Znotraj metode on_draw().
črna = arkadna.barva. ČRNA
besedilo = f"Zdravje: {self.player_health}"
arcade.draw_text (besedilo, 10, 10, Črna, 14)
Okrepitve za zdravje
Če želite uvesti izboljšanje zdravja, lahko ustvarite posebne predmete, ki povečajo igralčevo zdravje, ko trčijo z njimi. Tukaj je primer, kako lahko implementirate to funkcijo:
# Znotraj metode update().
če arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20
# Odstranite vklop iz igre
self.power_up.kill()
Različne vrste sovražnikov
Če želite svoji igri dodati globino, lahko uvedete različne vrste sovražnikov, ki igralcu povzročijo različne stopnje škode. To dodaja strateški element in omogoča bolj raznolike igralne izkušnje. Tukaj je izvedba te funkcije:
# Znotraj metode update().
če arcade.check_for_collision (self.player, self.enemy):
če self.nemy.type == "šibek":
self.player_health -= 5
elif self.nemy.type == "močan":
self.player_health -= 20
Z vključitvijo teh dodatnih funkcij v vaš zdravstveni sistem lahko ustvarite bolj dinamične in zahtevnejše igralne izkušnje za svoje igralce.
Najboljše prakse za zdravstveni sistem
Pri implementaciji zdravstvenega sistema v svojo arkadno igro je pomembno, da sledite najboljšim praksam, da zagotovite, da je sistem robusten in učinkovit. Tukaj je nekaj najboljših praks, ki jih morate upoštevati:
Naj bo modularen
Ohranite funkcionalnost zdravstvenega sistema v ločenem razredu ali modulu, da ostane modularen in ga je mogoče enostavno ponovno uporabiti v različnih projektih iger. To spodbuja organizacijo kode in ločevanje zadev.
Validacija vnosa in zaščitni ukrepi
Izvedite preverjanje vnosa, da preprečite, da bi vaša koda dodelila neveljavne vrednosti zdravja. Isti zaščitni ukrepi bi morali ščititi pred neveljavnimi zdravstvenimi vrednostmi, ko pride do poškodbe ali celjenja.
Mehanizem za shranjevanje in nalaganje
Izvedite mehanizem shranjevanja in nalaganja, ki vključuje zdravstveno stanje igralca. To omogoča igralcem, da nadaljujejo igro z nedotaknjenim napredkom, vključno z zdravjem, tudi po izhodu iz igre.
Testiranje in obravnavanje napak
Temeljito preizkusite izvajanje zdravstvenega sistema, da preverite njegovo pravilnost in zanesljivost. Za učinkovito obravnavanje izjem in robnih primerov uporabite ustrezne tehnike za obravnavanje napak.
Dosledne povratne informacije o zdravju
Zagotovite dosledne in jasne povratne informacije igralcu o njegovem zdravstvenem stanju. Dodate lahko zvočne učinke, vizualne namige ali celo haptične povratne informacije, ki zagotavljajo, da igralci poznajo svoje zdravstveno stanje v igri in lahko med igranjem sprejemajo premišljene odločitve.
Z upoštevanjem teh najboljših praks lahko ustvarite robusten in učinkovit zdravstveni sistem, ki izboljša izkušnjo igranja vaše arkadne igre, hkrati pa ohranja kakovost in berljivost kode.
Naredite igre bolj zabavne z zdravstvenim sistemom
Če svoji igri dodate zdravstveni sistem, lahko občutno izboljšate celotno izkušnjo igralca. Vnaša element tveganja in izziva, zaradi česar je igranje bolj privlačno in koristno.
Vizualna predstavitev zdravja omogoča igralcem, da enostavno ocenijo svoje trenutno stanje, kar poveča poglobljenost in strateško odločanje.