Ricerca nel sito web

Come implementare un sistema sanitario in PyGame


Introduci elementi come danni al giocatore, meccaniche di guarigione e altro ancora incorporando un sistema sanitario nei tuoi giochi.

L'implementazione di un sistema sanitario in un gioco può migliorare notevolmente l'esperienza di gioco e aggiungere un ulteriore livello di sfida e strategia. PyGame fornisce un solido set di strumenti e funzioni per incorporare il sistema sanitario, semplificando la creazione di esperienze interattive.

Crea un gioco semplice

Prima di iniziare, assicurati di avere pip installato sul tuo sistema. Utilizza questo comando per installare la libreria pygame:

pip install pygame

Successivamente, crea un file denominato simple-game.py e inizia creando un gioco semplice in cui il giocatore può muoversi a destra e a sinistra.

Il codice utilizzato in questo articolo è disponibile in questo repository GitHub ed è utilizzabile gratuitamente con la licenza MIT.

In questo ciclo di gioco di base, l'obiettivo del giocatore sarà evitare di scontrarsi con il nemico.

import pygame
import random
# Initialize PyGame
pygame.init()
# Set up the game window
window_width, window_height = 800, 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Health System Demo")
# Player attributes
player_width, player_height = 50, 50
player_x, player_y = window_width // 2, window_height - player_height - 10
player_speed = 1
# Enemy attributes
enemy_width, enemy_height = 50, 50
enemy_x, enemy_y = random.randint(0, window_width - enemy_width), 0
enemy_speed = 0.3
# Game loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    # Move the player left or right
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < window_width - player_width:
        player_x += player_speed
    # Move the enemy downwards
    enemy_y += enemy_speed
    # Draw game objects
    window.fill((0, 0, 0)) # Clear the screen
    pygame.draw.rect(window, (255, 0, 0), 
                     (player_x, player_y, 
                      player_width, player_height)) 
    pygame.draw.rect(window, (0, 255, 0), 
                     (enemy_x, enemy_y, 
                      enemy_width, enemy_height)) # Draw enemy
    pygame.display.update()
pygame.quit()

Esegui il codice e vedrai una finestra con un personaggio del giocatore che puoi controllare utilizzando i tasti freccia sinistra e destra.

Definizione di variabili e costanti relative alla salute

Ora che hai una configurazione di gioco di base, definisci le variabili e le costanti relative alla salute del giocatore. Puoi utilizzare un semplice sistema sanitario in cui puoi rappresentare la salute di un giocatore tramite un valore numerico. Puoi anche definire costanti per la salute massima del giocatore e la quantità di danni inflitti dal nemico.

Imposta la salute iniziale del giocatore su 100, definisci la salute massima su 100 e imposta il danno del nemico su 20. Questi valori possono essere regolati in base alle esigenze specifiche del tuo gioco.

# Player health
player_health = 100
max_health = 100
enemy_damage = 20

Implementazione di meccanismi di danno e guarigione

Per introdurre meccanismi di danno e guarigione, è necessario rilevare le collisioni tra il giocatore e il nemico e gestire i corrispondenti cambiamenti di salute. Puoi anche implementare un meccanismo per curare il giocatore quando esce dallo schermo.

Controlla se c'è una collisione tra il giocatore e il nemico confrontando i loro rettangoli di delimitazione. Se viene rilevata una collisione, sottrai il valore del danno del nemico dalla salute del giocatore.

Inoltre, se il giocatore si sposta dalla parte superiore dello schermo (player_y < 0), aggiungi 10 alla sua salute e assicurati che non superi la salute massima. Questo crea una meccanica di guarigione e ripristina la posizione del giocatore nella parte inferiore dello schermo.

Crea un nuovo file denominato damage-and-healing.py e aggiungi il codice con gli aggiornamenti seguenti:

# Inside the game loop, after updating the enemy position
# Detect collision between player and enemy
if player_x < enemy_x + enemy_width and \
           player_x + player_width > enemy_x and \
           player_y < enemy_y + enemy_height \
           and player_y + player_height > enemy_y:
   player_health -= enemy_damage
   print(player_health)
# Heal the player when they move off the screen
if player_y < 0:
   player_health += 10
   print(player_health)
   if player_health > max_health:
       player_health = max_health
       player_y = window_height - player_height - 10

Di seguito è riportato l'output:

Gestione degli scenari di morte e game over del giocatore

Per gestire la morte del giocatore e gli scenari di game over, devi verificare se la salute del giocatore raggiunge lo zero. In tal caso, visualizza il messaggio Game Over e riavvia il gioco.

Aggiungi un controllo per vedere se la salute del giocatore scende al di sotto o è pari a zero. Se questa condizione è vera, stampa Game Over e ripristina la salute e la posizione del giocatore.

Crea un nuovo file denominato manage-player-death.py e modifica il codice con gli aggiornamenti seguenti:

# After updating the player's position
# Check if player's health reaches zero
if player_health <= 0:
    print("Game Over")
    player_health = max_health
    player_x = window_width // 2
    player_y = window_height - player_height - 10

Comprese funzionalità aggiuntive

Per migliorare ulteriormente il sistema sanitario, è possibile incorporare funzionalità aggiuntive. Di seguito è riportato un esempio:

Potenziamento

Definisci gli attributi del potenziamento, come dimensioni e posizione. Inoltre, imposta un valore di salute che il giocatore otterrà quando si scontra con il potenziamento.

All'interno del ciclo di gioco, rileva le collisioni tra il giocatore e il potenziamento. Se si verifica una collisione, aumenta la salute del giocatore in base al valore di salute del potenziamento, assicurandoti che non superi la salute massima. Quindi riposiziona il potenziamento in modo casuale sullo schermo. Infine, disegna l'oggetto di accensione sullo schermo utilizzando un rettangolo blu.

Crea un nuovo file denominato power-up.py e aggiungi il codice con gli aggiornamenti seguenti:

# Define power-up attributes
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50
# Inside the game loop, after updating the player's position
# Detect collision between player and power-up
if player_x < power_up_x + power_up_width and\
      player_x + player_width > power_up_x \
        and player_y < power_up_y + power_up_height\
         and player_y + player_height > power_up_y:
    player_health += power_up_health_value
    if player_health > max_health:
        player_health = max_health
    power_up_x, power_up_y = 200,200
# Draw power-up object
pygame.draw.rect(window, (0, 0, 255), 
                    (power_up_x, power_up_y, 
                     power_up_width, 
                     power_up_height))

Di seguito è riportato l'output:

Per ogni funzionalità aggiuntiva, puoi definire le variabili e le costanti necessarie e implementare i meccanismi corrispondenti all'interno del ciclo di gioco.

Migliori pratiche per il sistema sanitario

Quando implementi un sistema sanitario in PyGame, tieni a mente le seguenti migliori pratiche:

Implementare sistemi guidati dagli eventi

Invece di controllare continuamente eventuali collisioni o cambiamenti di salute all'interno del ciclo di gioco, prendi in considerazione l'utilizzo di sistemi guidati dagli eventi. PyGame fornisce funzionalità di gestione degli eventi, consentendoti di attivare azioni relative alla salute in base a eventi specifici, come eventi di collisione o eventi di ritiro dell'accensione.

Equilibrare i valori della salute

Modifica i valori di salute, i valori di danno e i tassi di guarigione nel tuo gioco per garantire un'esperienza di gioco equilibrata. Il test di gioco e la raccolta del feedback dei giocatori possono aiutarti a mettere a punto questi valori per un gameplay ottimale.

Fornire un feedback

Assicurati che il giocatore riceva un feedback chiaro e significativo riguardo al suo stato di salute. Visualizza la barra della salute in primo piano sullo schermo, utilizza segnali visivi come cambiamenti di colore o animazioni per indicare danni o cure e fornisci segnali audio o visivi quando la salute del giocatore raggiunge livelli critici.

Seguendo queste best practice, puoi creare un sistema sanitario robusto e coinvolgente che contribuisce a un'esperienza di gioco coinvolgente.

Rendi i giochi più coinvolgenti con la barra della salute

L’implementazione di un sistema sanitario non solo aggiunge un livello di sfida, ma rende anche i giochi più coinvolgenti per i giocatori. Incorporando rappresentazioni visive della salute, come le barre della salute, i giocatori possono facilmente valutare il loro stato attuale e prendere decisioni strategiche. Inoltre, aggiungere livelli al tuo gioco può migliorare ulteriormente l'esperienza di gioco.

Articoli correlati: