Introduceți elemente precum daunele jucătorilor, mecanismele de vindecare și multe altele prin încorporarea unui sistem de sănătate în jocurile dvs.

Implementarea unui sistem de sănătate într-un joc poate îmbunătăți considerabil experiența de joc și poate adăuga un strat suplimentar de provocare și strategie. PyGame oferă un set robust de instrumente și funcții pentru încorporarea sistemului de sănătate, facilitând crearea de experiențe interactive.

Creați un joc simplu

Înainte de a începe, asigurați-vă că aveți pip instalat pe sistemul dumneavoastră. Utilizați această comandă pentru a instala pygame bibliotecă:

pip install pygame

După aceea, creați un fișier numit joc simplu.py și începeți prin a crea un joc simplu în care jucătorul se poate mișca la stânga și la dreapta.

Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

În această buclă de joc de bază, obiectivul jucătorului va fi să evite ciocnirea cu inamicul.

instagram viewer
import pygame
import Aleatoriu

# Inițializați PyGame
pygame.init()

# Configurați fereastra jocului
window_width, window_height = 800, 600
fereastră = pygame.display.set_mode((lățimea_ferestrei, înălțimea_ferestrei))
pygame.display.set_caption(„Demonstrația sistemului de sănătate”)

# Atributele jucătorului
player_width, player_height = 50, 50
player_x, player_y = window_width // 2, window_height - player_height - 10
player_speed = 1

# Atributele inamicului
enemy_width, enemy_height = 50, 50
enemy_x, enemy_y = random.randint(0, window_width - enemy_width), 0
enemy_speed = 0.3

# Buclă de joc
alergare = Adevărat
in timp ce alergare:
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals

# Deplasați playerul la stânga sau la dreapta
taste = pygame.key.get_pressed()
dacă chei[pygame. K_LEFT] și player_x > 0:
player_x -= player_speed
dacă chei[pygame. K_DREPTA] și player_x < window_width - player_width:
player_x += player_speed

# Mutați inamicul în jos
enemy_y += enemy_speed

# Desenați obiecte de joc
window.fill((0, 0, 0)) # Ștergeți ecranul
pygame.draw.rect (fereastră, (255, 0, 0),
(player_x, player_y,
player_width, player_height))
pygame.draw.rect (fereastră, (0, 255, 0),
( dușman_x, dușman_y,
enemy_width, enemy_height)) # Desenați inamicul
pygame.display.update()

pygame.quit()

Rulați codul și veți vedea o fereastră cu un personaj jucător pe care îl puteți controla folosind tastele săgeți stânga și dreapta.

Acum că aveți o configurație de bază a jocului, definiți variabilele și constantele legate de sănătatea jucătorului. Puteți folosi un sistem de sănătate simplu în care puteți reprezenta sănătatea unui jucător printr-o valoare numerică. De asemenea, puteți defini constante pentru sănătatea maximă a jucătorului și cantitatea de daune provocate de inamic.

Setați sănătatea inițială a jucătorului la 100, definiți sănătatea maximă la 100 și setați daunele inamicului la 20. Aceste valori pot fi ajustate în funcție de nevoile specifice ale jocului tău.

# Sănătatea jucătorului
player_health = 100
max_health = 100
enemy_damage = 20

Implementarea daunelor și a mecanicii de vindecare

Pentru a introduce mecanisme de daune și vindecare, trebuie să detectați coliziunile dintre jucător și inamic și să gestionați modificările corespunzătoare de sănătate. De asemenea, puteți implementa un mecanism pentru a vindeca jucătorul atunci când acesta se deplasează de pe ecran.

Verificați dacă există o ciocnire între jucător iar inamicul comparând dreptunghiurile lor mărginitoare. Dacă este detectată o coliziune, scădeți valoarea daunelor inamicului din sănătatea jucătorului.

În plus, dacă jucătorul iese din partea de sus a ecranului (player_y < 0), adaugă 10 la sănătatea lor și asigură-te că nu depășește sănătatea maximă. Acest lucru creează o mecanică de vindecare și resetează poziția jucătorului în partea de jos a ecranului.

Creați un fișier nou numit deteriorare-şi-vindecare.py și adăugați codul cu actualizările de mai jos:

# În bucla de joc, după actualizarea poziției inamicului
# Detectează coliziunea dintre jucător și inamic
dacă player_x < enemy_x + enemy_width și \
player_x + player_width > enemy_x și \
player_y < enemy_y + enemy_height \
și player_y + player_height > enemy_y:
player_health -= enemy_damage
imprimare (player_health)

# Vindecă jucătorul când se îndepărtează de pe ecran
dacă player_y < 0:
sănătatea_jucătorului += 10
imprimare (player_health)
dacă player_health > max_health:
player_health = sănătate_max
player_y = window_height - player_height - 10

Mai jos este rezultatul:

Gestionarea morții jucătorilor și scenariilor Game Over

Pentru a gestiona moartea jucătorului și scenariile de final de joc, trebuie să verificați dacă sănătatea jucătorului ajunge la zero. Dacă da, afișați a Joc încheiat mesaj și reporniți jocul.

Adăugați o verificare pentru a vedea dacă sănătatea jucătorului scade sub sau este egală cu zero. Dacă această condiție este adevărată, tipăriți Joc încheiat și resetați sănătatea și poziția jucătorului.

Creați un fișier nou numit manage-player-death.py și modificați codul cu actualizările de mai jos:

# După actualizarea poziției jucătorului

# Verificați dacă sănătatea jucătorului ajunge la zero
dacă sănătatea_jucătorului <= 0:
imprimare("Joc încheiat")
player_health = sănătate_max
player_x = window_width // 2
player_y = window_height - player_height - 10

Inclusiv caracteristici suplimentare

Pentru a îmbunătăți și mai mult sistemul de sănătate, puteți încorpora funcții suplimentare. Mai jos este un exemplu:

Power ups

Definiți atributele pornirii, cum ar fi dimensiunile și poziția acestuia. De asemenea, setați o valoare de sănătate pe care jucătorul o va câștiga atunci când se ciocnește de pornire.

În cadrul buclei de joc, detectați coliziunile între jucător și pornire. Dacă are loc o coliziune, creșteți sănătatea jucătorului cu valoarea de sănătate a pornirii, asigurându-vă că nu depășește sănătatea maximă. Apoi repoziționează pornirea la întâmplare pe ecran. În cele din urmă, desenați obiectul de pornire pe ecran folosind un dreptunghi albastru.

Creați un fișier nou numit power-up.py și adăugați codul cu actualizările de mai jos:

# Definiți atributele de pornire
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# În bucla de joc, după actualizarea poziției jucătorului
# Detectează coliziunea între jucător și pornire
dacă player_x < power_up_x + power_up_width și\
player_x + player_width > power_up_x \
și player_y < power_up_y + power_up_height\
și player_y + player_height > power_up_y:
player_health += power_up_health_value
dacă player_health > max_health:
player_health = sănătate_max
power_up_x, power_up_y = 200,200

# Desenați obiectul de pornire
pygame.draw.rect (fereastră, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))

Mai jos este rezultatul:

Pentru fiecare caracteristică suplimentară, puteți defini variabilele și constantele necesare și puteți implementa mecanica corespunzătoare în bucla de joc.

Cele mai bune practici pentru sistemul de sănătate

Când implementați un sistem de sănătate în PyGame, țineți cont de următoarele bune practici:

Implementați sisteme bazate pe evenimente

În loc să verificați continuu pentru coliziuni sau modificări de sănătate în bucla de joc, luați în considerare utilizarea sistemelor bazate pe evenimente. PyGame oferă capabilități de gestionare a evenimentelor, permițându-vă să declanșați acțiuni legate de sănătate pe baza unor evenimente specifice, cum ar fi evenimente de coliziune sau evenimente de preluare a pornirii.

Echilibrați valorile de sănătate

Ajustați valorile de sănătate, valorile daunelor și ratele de vindecare din jocul dvs. pentru a asigura o experiență de joc echilibrată. Testarea jocului și colectarea feedback-ului de la jucători vă pot ajuta să reglați aceste valori pentru un joc optim.

Oferi feedback

Asigurați-vă că jucătorul primește feedback clar și semnificativ cu privire la starea sa de sănătate. Afișează bara de sănătate vizibil pe ecran, folosește indicii vizuale, cum ar fi schimbări de culoare sau animații pentru a indica deteriorarea sau vindecarea și oferi indicii audio sau vizuale când starea de sănătate a jucătorului atinge niveluri critice.

Urmând aceste bune practici, puteți crea un sistem de sănătate robust și captivant, care contribuie la o experiență de joc captivantă.

Faceți jocurile mai atractive cu Health Bar

Implementarea unui sistem de sănătate nu numai că adaugă un nivel de provocare, ci și face jocurile mai captivante pentru jucători. Încorporând reprezentări vizuale ale sănătății, cum ar fi barele de sănătate, jucătorii își pot evalua cu ușurință starea actuală și pot lua decizii strategice. În plus, adăugarea de niveluri la jocul tău poate îmbunătăți și mai mult experiența de joc.