Introduceer elementen zoals spelerschade, genezingsmechanismen en meer door een gezondheidssysteem in je games op te nemen.

Het implementeren van een gezondheidssysteem in een game kan de gameplay-ervaring enorm verbeteren en een extra laag uitdaging en strategie toevoegen. PyGame biedt een robuuste set tools en functies voor het integreren van het gezondheidssysteem, waardoor het gemakkelijk wordt om interactieve ervaringen te creëren.

Maak een eenvoudig spel

Controleer voordat u begint of u dat hebt gedaan pip op uw systeem geïnstalleerd. Gebruik deze opdracht om het pyspel bibliotheek:

pip installeer pygame

Maak daarna een bestand met de naam simpel-spel.py en begin met het maken van een eenvoudig spel waarbij de speler naar links en rechts kan bewegen.

De code die in dit artikel wordt gebruikt, is hierin beschikbaar GitHub-opslagplaats en is gratis voor u om te gebruiken onder de MIT-licentie.

In deze basisspelloop is het doel van de speler om te voorkomen dat hij in botsing komt met de vijand.

importeren pyspel
importeren willekeurig

# Initialiseer PyGame
pygame.init()

# Stel het spelvenster in
venster_breedte, venster_hoogte = 800, 600
venster = pygame.display.set_mode((vensterbreedte, vensterhoogte))
pygame.display.set_caption("Gezondheidssysteem demo")

# Spelersattributen
speler_breedte, speler_hoogte = 50, 50
speler_x, speler_y = venster_breedte // 2, venster_hoogte - speler_hoogte - 10
speler_snelheid = 1

# Vijandelijke attributen
vijandelijke_breedte, vijandelijke_hoogte = 50, 50
vijand_x, vijand_y = willekeurig.randint(0, venster_breedte - vijandelijke_breedte), 0
vijandelijke_snelheid = 0.3

# Spellus
hardlopen = WAAR
terwijl rennen:
voor evenement in pygame.event.get():
als event.type == pygame. ONTSLAG NEMEN:
hardlopen = Vals

# Verplaats de speler naar links of rechts
toetsen = pygame.key.get_pressed()
als toetsen[pygame. K_LEFT] En speler_x > 0:
speler_x -= speler_snelheid
als toetsen[pygame. K_RIGHT] En player_x < window_width - player_width:
player_x += player_speed

# Beweeg de vijand naar beneden
vijand_y += vijand_snelheid

# Teken spelobjecten
venster.vullen((0, 0, 0)) # Wis het scherm
pygame.draw.rect (venster, (255, 0, 0),
(speler_x, speler_y,
player_width, player_height))
pygame.draw.rect (venster, (0, 255, 0),
(vijand_x, vijand_y,
vijandelijke_breedte, vijandelijke_hoogte)) # Teken vijand
pygame.display.update()

pygame.quit()

Voer de code uit en je ziet een venster met een personage dat je kunt besturen met de linker- en rechterpijltoetsen.

Nu je een basisspel hebt, definieer je de variabelen en constanten die verband houden met de gezondheid van de speler. Je kunt een eenvoudig gezondheidssysteem gebruiken waarbij je de gezondheid van een speler kunt weergeven met een numerieke waarde. Je kunt ook constanten definiëren voor de maximale gezondheid van de speler en de hoeveelheid schade die de vijand toebrengt.

Stel de initiële gezondheid van de speler in op 100, definieer de maximale gezondheid als 100 en stel de schade van de vijand in op 20. Deze waarden kunnen worden aangepast aan de specifieke behoeften van uw spel.

# Gezondheid van de speler
speler_gezondheid = 100
max_gezondheid = 100
vijandelijke schade = 20

Schade- en genezingsmechanismen implementeren

Om schade- en genezingsmechanismen te introduceren, moet je botsingen tussen de speler en de vijand detecteren en de bijbehorende gezondheidsveranderingen afhandelen. Je kunt ook een mechanisme implementeren om de speler te genezen wanneer deze van het scherm af beweegt.

Controleer of er een botsing tussen de speler en de vijand door hun begrenzende rechthoeken te vergelijken. Als er een botsing wordt gedetecteerd, trek je de schadewaarde van de vijand af van de gezondheid van de speler.

Bovendien, als de speler van de bovenkant van het scherm beweegt (speler_y < 0), tel 10 op bij hun gezondheid en zorg ervoor dat deze de maximale gezondheid niet overschrijdt. Dit creëert een genezingsmechanisme en reset de positie van de speler naar de onderkant van het scherm.

Maak een nieuw bestand met de naam schade-en-genezing.py en voeg de code toe met de onderstaande updates:

# Binnen de spellus, na het updaten van de vijandelijke positie
# Detecteer een botsing tussen speler en vijand
als player_x < vijand_x + vijand_breedte En \
player_x + player_width > vijand_x En \
player_y < vijand_y + vijand_hoogte \
En player_y + player_height > vijand_y:
player_health -= vijand_schade
afdrukken (speler_gezondheid)

# Genees de speler wanneer deze van het scherm af beweegt
als speler_y < 0:
speler_gezondheid += 10
afdrukken (speler_gezondheid)
als speler_gezondheid > max_gezondheid:
speler_gezondheid = max_gezondheid
player_y = window_height - player_height - 10

Hieronder is de uitvoer:

Spelersdood en Game Over-scenario's beheren

Om de dood- en game-over-scenario's van de speler aan te kunnen, moet je controleren of de gezondheid van de speler nul bereikt. Als dit het geval is, geeft u a weer Spel is over bericht en start het spel opnieuw.

Voeg een vinkje toe om te zien of de gezondheid van de speler onder of gelijk is aan nul. Als deze voorwaarde waar is, drukt u af Spel is over en reset de gezondheid en positie van de speler.

Maak een nieuw bestand met de naam manage-player-death.py en wijzig de code met de onderstaande updates:

# Na het bijwerken van de positie van de speler

# Controleer of de gezondheid van de speler nul bereikt
als speler_gezondheid <= 0:
afdrukken("Spel is over")
speler_gezondheid = max_gezondheid
speler_x = venster_breedte // 2
player_y = window_height - player_height - 10

Inclusief extra functies

Om het gezondheidssysteem verder te verbeteren, kunt u extra functies opnemen. Hieronder is een voorbeeld:

Power-ups

Definieer de attributen van de power-up, zoals de afmetingen en positie. Stel ook een gezondheidswaarde in die de speler krijgt als hij in botsing komt met de power-up.

Detecteer binnen de spellus botsingen tussen de speler en de power-up. Als er een botsing plaatsvindt, verhoog dan de gezondheid van de speler met de gezondheidswaarde van de power-up, en zorg ervoor dat deze de maximale gezondheid niet overschrijdt. Verplaats vervolgens de power-up willekeurig op het scherm. Teken ten slotte het power-up-object op het scherm met een blauwe rechthoek.

Maak een nieuw bestand met de naam power-up.py en voeg de code toe met de onderstaande updates:

# Definieer power-up attributen
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# Binnen de spellus, na het updaten van de positie van de speler
# Detecteer een botsing tussen speler en power-up
als player_x < power_up_x + power_up_width En\
player_x + player_width > power_up_x \
En player_y < power_up_y + power_up_height\
En player_y + player_height > power_up_y:
player_health += power_up_health_value
als speler_gezondheid > max_gezondheid:
speler_gezondheid = max_gezondheid
power_up_x, power_up_y = 200,200

# Teken power-up-object
pygame.draw.rect (venster, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))

Hieronder is de uitvoer:

Voor elke extra functie kun je de benodigde variabelen en constanten definiëren en de overeenkomstige mechanismen implementeren binnen de spellus.

Beste praktijken voor het gezondheidssysteem

Houd bij het implementeren van een gezondheidssysteem in PyGame rekening met de volgende best practices:

Implementeer gebeurtenisgestuurde systemen

In plaats van continu te controleren op botsingen of gezondheidsveranderingen binnen de gamelus, kun je overwegen om gebeurtenisgestuurde systemen te gebruiken. PyGame biedt mogelijkheden voor het afhandelen van gebeurtenissen, waardoor u gezondheidsgerelateerde acties kunt activeren op basis van specifieke gebeurtenissen, zoals botsingsgebeurtenissen of opstartgebeurtenissen.

Breng gezondheidswaarden in evenwicht

Pas de gezondheidswaarden, schadewaarden en genezingspercentages in je game aan om een ​​evenwichtige gameplay-ervaring te garanderen. Door het testen van games en het verzamelen van feedback van spelers kun je deze waarden verfijnen voor een optimale gameplay.

Geef feedback

Zorg ervoor dat de speler duidelijke en zinvolle feedback krijgt over zijn gezondheidsstatus. Toon de gezondheidsbalk prominent op het scherm, gebruik visuele aanwijzingen zoals kleurveranderingen of animaties om schade of genezing aan te geven, en geef audio of visuele aanwijzingen wanneer de gezondheid van de speler kritieke niveaus bereikt.

Door deze best practices te volgen, kunt u een robuust en boeiend gezondheidssysteem creëren dat bijdraagt ​​aan een meeslepende gameplay-ervaring.

Maak games aantrekkelijker met de gezondheidsbalk

Het implementeren van een gezondheidssysteem voegt niet alleen een laag uitdaging toe, maar maakt games ook aantrekkelijker voor spelers. Door visuele representaties van gezondheid op te nemen, zoals gezondheidsbalken, kunnen spelers eenvoudig hun huidige status beoordelen en strategische beslissingen nemen. Bovendien kan het toevoegen van niveaus aan je game de gameplay-ervaring verder verbeteren.