Kas soovite oma mängus ohtudega toime tulla? Muutke elud terviseks ja lisage oma mängule täiendav mõõde.

Tervisesüsteemi lisamine oma arkaadmängule võib parandada mängija kogemust ning lisada täiendavat väljakutset ja kaasatust. Saate luua kaasahaaravama mängukogemuse, kuvades mängija tervise ja kahjustuste ja paranemise mehhanismid.

Õnneks on Pythonis tervisesüsteemi juurutamine Arcade teegi abil lihtne ja nõuab vaid mõnda sammu.

Looge lihtne mäng

Esiteks installige oma seadmesse pip ja kasutage arkaadteegi installimiseks allolevat käsku:

pip install arkaad

Pärast seda alustage lihtsa mängu loomisega, kasutades Arcade raamatukogu. Selles mängus on mängijategelane, kes saab liikuda vasakule, paremale, üles ja alla, ning vaenlase objekt, mis kujutab mängijat ohtu.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Looge uus fail nimega lihtne-mäng.py ja lisage allolev kood:

importida arkaad

# Määrake akna mõõtmed
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

instagram viewer

# Määrake mängija liikumiskiirus
PLAYER_MOVEMENT_SPEED = 5
valge = arkaad.värv. VALGE
sinine = arkaad.värv. SININE
punane = arkaad.värv. PUNANE

klassMänguaken(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
arcade.set_background_color (valge)

# Looge mängija ja vaenlase objekte
ise.mängija = arkaad. SpriteCircle(30, sinine)
ise.vaenlane = arkaad. SpriteCircle(30, punane)
self.player.center_x = 100
self.player.center_y = 100
ise.vaenlane.keskus_x = 400
ise.vaenlane.keskus_y = 300

defon_draw(ise):
arcade.start_render()
self.player.draw()
ise.vaenlane.draw()

defvärskendada(ise, delta_aeg):
üle andma

defon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player.center_x -= MÄNGIJA_LIIKUMISE_KIIRUS
elif võti == arcade.key. PAREMALE:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif võti == arcade.key. UP:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif võti == arcade.key. ALLA:
self.player.center_y -= MÄNGIJA_LIIKUMISE_KIIRUS

defpeamine():
mäng = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

kui __nimi__ == "__main__":
peamine ()

Peaksite nägema akent, mis sisaldab kahte tähemärki, mida tähistavad sinised ja punased ringid:

Tervisesüsteemi rakendamiseks määratleda tervisega seotud muutujad ja konstandid. Nende abil saate jälgida mängija hetkeseisundit ning määrata kindlaks vigastuste ja paranemise reeglid. Lisage seesse järgmine kood Mänguaken klass:

klassMänguaken(arkaad. aken):
def__selles__(ise, laius, kõrgus):
# ...
# Tervisega seotud muutujad ja konstandid
self.player_health = 100

# Tervisepunktid paranesid sekundis
self.heal_rate = 1

# Tervenemise taimer
self.heal_timer = 0

defvärskendada(ise, delta_aeg):
# ...
# Uuenda tervendavataimerit
self.heal_timer += delta_time

# Ravige mängija tervist iga 2 sekundi järel
kui self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Veenduge, et tervis ei ületaks maksimaalset väärtust
kui self.player_health > 100:
self.player_health = 100

Kahjude ja paranemise mehaanika rakendamine

Kahjustuste ja paranemismehhanismide rakendamiseks, tuvastada kokkupõrkeid mängija ja vaenlase vahel. Vähendage mängija tervist, kui nad põrkuvad vaenlasega, ja parandage mängija tervist iga 2 sekundi järel, kui nad ei põrgata. Muutke värskenda() meetod ja lisage järgmine kood:

klassMänguaken(arkaad. aken):
def__selles__(ise, laius, kõrgus):
# ...

defvärskendada(ise, delta_aeg):
# Tuvastage kokkupõrked mängija ja vaenlase vahel
kui arcade.check_for_collision (self.player, self.enemy):
self.player_health -= 5

# ...

Mängija surma ja mängu üle stsenaariumite haldamine

Mängija surma ja mängu lõppemise stsenaariumide haldamiseks kontrollige, kas mängija tervis on null või alla selle. Kui tervis langeb nulli, lugege mängija surnuks ja lõpetage mäng. Muutke värskenda() meetod järgmise koodiga:

klassMänguaken(arkaad. aken):
def__selles__(ise, laius, kõrgus):
# ...

defvärskendada(ise, delta_aeg):
# ...

# Kontrollige, kas mängija tervis on null või madalam
kui self.player_health <= 0:
# Lõpeta mäng
arcade.close_window()

# ...

Terviseriba visualiseerimine

Mängija tervise visuaalne esitus võib mängukogemust oluliselt parandada. Looge terviseriba, kasutades ristkülikuid, et näidata hetkeseisu. Looge uus fail nimega tervis-bar.py ja lisage kood koos allolevate värskendustega:

klassMänguaken(arkaad. aken):
def__selles__(ise, laius, kõrgus):
# ...

defon_draw(ise):
arcade.start_render()
self.player.draw()
ise.vaenlane.draw()
hall = arkaad.värv. HELE_HALL
roheline = arkaad.värv. ROHELINE

# Joonistage terviseriba
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, hall)

health_width = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
Health_width, 20, roheline)

Allpool on väljund:

Kaasa arvatud lisafunktsioonid

Saate tervishoiusüsteemi veelgi täiustada rohkemate funktsioonidega, näiteks allpool.

Numbriline terviseekraan

Lisaks terviseribale saate ekraanil kuvada allesjäänud tervise numbrilise väärtusena. See annab täpse ülevaate mängija tervislikust seisundist. Lisage seesse järgmine kood on_draw() meetod:

# Meetodi on_draw() sees
must = arkaad.värv. MUST
tekst = f"Tervis: {self.player_health}"
arcade.draw_text (tekst, 10, 10, must, 14)

Tervise tugevdamine

Tervisevõimendite tutvustamiseks saate luua spetsiaalseid objekte, mis nendega kokkupõrkel mängija tervist turgutavad. Siin on näide selle funktsiooni rakendamiseks.

# Update() meetodi sees
kui arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Eemaldage mängust toide
self.power_up.kill()

Erinevad vaenlase tüübid

Mängule sügavuse lisamiseks saate tutvustada erinevaid vaenlase tüüpe, mis tekitavad mängijale erineval tasemel kahju. See lisab strateegilise elemendi ja võimaldab mitmekesisemaid mängukogemusi. Siin on selle funktsiooni rakendus:

# Update() meetodi sees
kui arcade.check_for_collision (self.player, self.enemy):
kui ise.vaenlane.tüüp == "nõrk":
self.player_health -= 5
elif ise.vaenlane.tüüp == "tugev":
self.player_health -= 20

Lisades need lisafunktsioonid oma tervishoiusüsteemi juurutusse, saate luua oma mängijatele dünaamilisemaid ja väljakutsuvamaid mängukogemusi.

Tervishoiusüsteemi parimad tavad

Tervisesüsteemi juurutamisel arkaadmängus on oluline järgida parimaid tavasid, et tagada süsteemi töökindlus ja tõhusus. Siin on mõned parimad tavad, mida meeles pidada.

Tee see modulaarseks

Hoidke tervisesüsteemi funktsionaalsust eraldi klassis või moodulis, et see oleks modulaarne ja hõlpsasti taaskasutatav erinevates mänguprojektides. See soodustab koodi organiseerimist ja murede eraldamist.

Sisestuse kinnitamine ja kaitsemeetmed

Rakendage sisendi valideerimist, et vältida teie koodile kehtetute terviseväärtuste määramist. Samad kaitsemeetmed peaksid kaitsma kehtetute terviseväärtuste eest kahjustuste või paranemise korral.

Salvestamise ja laadimise mehhanism

Rakendage salvestamise ja laadimise mehhanism, mis hõlmab mängija tervislikku seisundit. See võimaldab mängijatel jätkata mängu, kui nende edenemine on puutumatu, sealhulgas tervis, isegi pärast mängust väljumist.

Testimine ja vigade käsitlemine

Testige tervisesüsteemi juurutamist põhjalikult, et kontrollida selle õigsust ja usaldusväärsust. Kasutage erandite ja äärmuslike juhtumite tõhusaks käsitlemiseks sobivaid veakäsitluse tehnikaid.

Järjepidev tervisealane tagasiside

Andke mängijale järjepidevat ja selget tagasisidet tema tervisliku seisundi kohta. Saate lisada heliefekte, visuaalsed näpunäited või isegi haptiline tagasiside, mis tagab, et mängijad teavad oma tervislikku seisundit mängus ja saavad mängu ajal teha teadlikke otsuseid.

Neid parimaid tavasid järgides saate luua tugeva ja tõhusa tervisesüsteemi, mis täiustab teie arkaadmängu mängukogemust, säilitades samal ajal koodi kvaliteedi ja loetavuse.

Muutke mängud tervisesüsteemiga lõbusamaks

Tervishoiusüsteemi lisamine mängule võib märkimisväärselt parandada üldist mängijakogemust. See toob kaasa riski ja väljakutse elemendi, muutes mängu kaasahaaravamaks ja rahuldust pakkuvamaks.

Tervise visuaalne esitus võimaldab mängijatel hõlpsasti hinnata oma hetkeseisu, suurendades keelekümblust ja strateegiliste otsuste tegemist.