Ønsker du at finesse dit spils håndtering af farer? Gør liv til sundhed og tilføj en ekstra dimension til dit gameplay.

Tilføjelse af et sundhedssystem til dit arkadespil kan forbedre spilleroplevelsen og kan tilføje et ekstra lag af udfordring og engagement. Du kan skabe en mere fordybende spiloplevelse med en visning af spillerens helbred og mekanik til skade og helbredelse.

Heldigvis er implementering af et sundhedssystem i Python ved hjælp af Arcade-biblioteket ligetil og kræver kun et par trin.

Opret et simpelt spil

Først, installer pip på din enhed og brug nedenstående kommando til at installere arkadebiblioteket:

pip installere arkade

Start derefter med at oprette et simpelt spil ved hjælp af Arcade-biblioteket. Dette spil vil indeholde en spillerkarakter, der kan bevæge sig til venstre, højre, op og ned og et fjendeobjekt, der udgør en trussel mod spilleren.

Koden brugt i denne artikel er tilgængelig i denne GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Opret en ny fil med navnet simple-game.py og tilføj nedenstående kode:

instagram viewer
importere arkade

# Indstil vinduesdimensioner
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Indstil spillerens bevægelseshastighed
PLAYER_MOVEMENT_SPEED = 5
hvid = arkade.farve. HVID
blå = arkade.farve. BLÅ
rød = arkade.farve. RØD

klasseGameWindow(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)
arcade.set_background_color (hvid)

# Opret spiller- og fjendeobjekter
self.player = arkade. SpriteCircle(30, blå)
self.enmy = arkade. SpriteCircle(30, rød)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enemy.center_y = 300

defon_draw(selv):
arcade.start_render()
self.player.draw()
self.enemy.draw()

defopdatering(selv, delta_tid):
passere

defon_key_press(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
elif nøgle == arkade.nøgle. HØJRE:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif nøgle == arkade.nøgle. OP:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif nøgle == arkade.nøgle. NED:
self.player.center_y -= PLAYER_MOVEMENT_SPEED

defvigtigste():
spil = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

hvis __navn__ == "__main__":
hoved()

Du bør se et vindue, der indeholder to tegn, repræsenteret af blå og røde cirkler:

For at implementere sundhedssystemet, definere variabler og konstanter relateret til sundhed. Du skal bruge dem til at holde styr på spillerens nuværende helbred og bestemme reglerne for skade og helbredelse. Tilføj følgende kode inde i GameWindow klasse:

klasseGameWindow(arkade. Vindue):
def__i det__(selv, bredde, højde):
# ...
# Sundhedsrelaterede variabler og konstanter
self.player_health = 100

# Sundhedspoint helet pr. sekund
self.heal_rate = 1

# Timer til helbredelse
self.heal_timer = 0

defopdatering(selv, delta_tid):
# ...
# Opdater healing timer
self.heal_timer += delta_tid

# Helbred spillerens helbred hvert 2. sekund
hvis self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Sørg for, at sundheden ikke overstiger den maksimale værdi
hvis self.player_health > 100:
self.player_health = 100

Implementering af skades- og helingsmekanik

For at implementere skade- og helingsmekanikken, registrere kollisioner mellem spilleren og fjenden. Reducer spillerens helbred, når de kolliderer med fjenden, og helbred spillerens helbred hvert 2. sekund, når de ikke kolliderer. Rediger update() metode og tilføje følgende kode:

klasseGameWindow(arkade. Vindue):
def__i det__(selv, bredde, højde):
# ...

defopdatering(selv, delta_tid):
# Opdag kollisioner mellem spiller og fjende
hvis arcade.check_for_collision (selv.spiller, self.enmy):
self.player_health -= 5

# ...

Håndtering af spillerdøds- og Game Over-scenarier

For at administrere spillerdøds- og game-over-scenarier skal du kontrollere, om spillerens helbred når nul eller derunder. Hvis helbredet falder til nul, skal du betragte spilleren som død og afslutte spillet. Rediger update() metode med følgende kode:

klasseGameWindow(arkade. Vindue):
def__i det__(selv, bredde, højde):
# ...

defopdatering(selv, delta_tid):
# ...

# Tjek om spillerens helbred er nul eller derunder
hvis self.player_health <= 0:
# Afslut spillet
arcade.close_window()

# ...

Visualisering af Health Bar

En visuel repræsentation af spillerens helbred kan i høj grad forbedre spiloplevelsen. Opret en sundhedsbjælke ved hjælp af rektangler til at vise det aktuelle sundhedsniveau. Opret en ny fil med navnet health-bar.py og tilføj koden med nedenstående opdateringer:

klasseGameWindow(arkade. Vindue):
def__i det__(selv, bredde, højde):
# ...

defon_draw(selv):
arcade.start_render()
self.player.draw()
self.enemy.draw()
grå = arkade.farve. LYSEGRÅ
grøn = arkade.farve. GRØN

# Tegn sundhedsbjælke
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, grå)

health_width = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
sundhedsbredde, 20, grøn)

Nedenfor er output:

Inklusiv yderligere funktioner

Du kan forbedre sundhedssystemet yderligere med flere funktioner, som dem nedenfor.

Numerisk sundhedsvisning

Ud over sundhedsbjælken kan du få vist den resterende sundhed som en numerisk værdi på skærmen. Dette giver en præcis indikation af spillerens helbredstilstand. Tilføj følgende kode inde i on_draw() metode:

# Inde i on_draw() metoden
sort = arkade.farve. SORT
tekst = f"Sundhed: {self.player_health}"
arcade.draw_text (tekst, 10, 10, sort, 14)

Sundhed Power-Ups

For at introducere sundheds-power-ups kan du oprette specielle objekter, der booster spillerens helbred, når de kolliderer med dem. Her er et eksempel på, hvordan du kan implementere denne funktion:

# Inde i update()-metoden
hvis arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Fjern power-up'en fra spillet
self.power_up.kill()

Forskellige fjendetyper

For at tilføje dybde til dit spil, kan du introducere forskellige fjendetyper, der påfører spilleren forskellige niveauer af skade. Dette tilføjer et strategisk element og giver mulighed for mere forskelligartede spiloplevelser. Her er en implementering af denne funktion:

# Inde i update()-metoden
hvis arcade.check_for_collision (selv.spiller, self.enmy):
hvis self.enemy.type == "svag":
self.player_health -= 5
elif self.enemy.type == "stærk":
self.player_health -= 20

Ved at inkorporere disse ekstra funktioner i implementeringen af ​​dit sundhedssystem kan du skabe mere dynamiske og udfordrende spiloplevelser for dine spillere.

Bedste praksis for sundhedssystemet

Når du implementerer et sundhedssystem i dit arkadespil, er det vigtigt at følge bedste praksis for at sikre, at systemet er robust og effektivt. Her er nogle af de bedste fremgangsmåder, du skal huske på:

Gør det modulært

Hold sundhedssystemets funktionalitet inden for en separat klasse eller modul for at holde den modulopbygget og let genbrugelig på tværs af forskellige spilprojekter. Dette fremmer kodeksorganisering og adskillelse af bekymringer.

Inputvalidering og sikkerhedsforanstaltninger

Implementer inputvalidering for at forhindre din kode i at tildele ugyldige sundhedsværdier. De samme sikkerhedsforanstaltninger bør beskytte mod ugyldige sundhedsværdier, når der opstår skade eller heling.

Gem og indlæs mekanisme

Implementer en gemme- og indlæsningsmekanisme, der inkluderer spillerens helbredsstatus. Dette giver spillerne mulighed for at genoptage spillet med deres fremskridt intakt, inklusive deres helbred, selv efter at have forladt spillet.

Test og fejlhåndtering

Test implementeringen af ​​sundhedssystemet grundigt for at verificere dens rigtighed og pålidelighed. Brug passende fejlhåndteringsteknikker til at håndtere undtagelser og randsager effektivt.

Konsekvent sundhedsfeedback

Giv ensartet og klar feedback til spilleren om deres helbredstilstand. Du kan tilføje lydeffekter, visuelle signaler eller endda haptisk feedback, der sikrer, at spillerne kender deres helbredstilstand i spillet og kan træffe informerede beslutninger under spillet.

Ved at følge disse bedste praksisser kan du skabe et robust og effektivt sundhedssystem, der forbedrer dit arkadespils spiloplevelse og samtidig bibeholde kodekvalitet og læsbarhed.

Gør spil sjovere med Health System

Tilføjelse af et sundhedssystem til dit spil kan forbedre den samlede spilleroplevelse markant. Det introducerer et element af risiko og udfordring, hvilket gør gameplayet mere engagerende og givende.

En visuel repræsentation af sundhed giver spillerne mulighed for nemt at vurdere deres nuværende status, hvilket øger fordybelsen og den strategiske beslutningstagning.