Tutvustage selliseid elemente nagu mängijakahjustused, paranemismehaanika ja palju muud, lisades oma mängudesse tervisesüsteemi.

Tervishoiusüsteemi rakendamine mängus võib mängukogemust oluliselt parandada ning lisada täiendava väljakutse ja strateegia. PyGame pakub tugevat tööriistade ja funktsioonide komplekti tervisesüsteemi kaasamiseks, muutes interaktiivsete kogemuste loomise lihtsaks.

Looge lihtne mäng

Enne alustamist veenduge, et teil on pip teie süsteemi installitud. Kasutage seda käsku installimiseks pygame raamatukogu:

pip install pygame

Pärast seda looge fail nimega lihtne-mäng.py ja alustage lihtsa mängu loomisega, kus mängija saab liikuda vasakule ja paremale.

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

Selles põhimängus on mängija eesmärk vältida kokkupõrget vaenlasega.

importida pygame
importida juhuslik

# Initsialiseerige PyGame
pygame.init()

# Seadistage mängu aken
akna_laius, akna_kõrgus = 800, 600
aken = pygame.display.set_mode((akna_laius, akna_kõrgus))


pygame.display.set_caption("Tervisesüsteemi demo")

# Mängija atribuudid
mängija_laius, mängija_kõrgus = 50, 50
mängija_x, mängija_y = akna_laius // 2, akna_kõrgus - mängija_kõrgus - 10
mängija_kiirus = 1

# Vaenlase atribuudid
vaenlase_laius, vaenlase_kõrgus = 50, 50
vaenlane_x, vaenlane_y = random.randint(0, akna_laius – vaenlase_laius), 0
vaenlase_kiirus = 0.3

# Mängutsükkel
jookseb = Tõsi
samal ajal jooksmine:
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
jookseb = Vale

# Liigutage mängijat vasakule või paremale
võtmed = pygame.key.get_pressed()
kui võtmed[pygame. K_LEFT] ja mängija_x > 0:
mängija_x - = mängija_kiirus
kui võtmed[pygame. K_RIGHT] ja mängija_x < window_width - player_width:
mängija_x += mängija_kiirus

# Liigutage vaenlane allapoole
vaenlane_y += vaenlase_kiirus

# Joonistage mänguobjekte
window.fill((0, 0, 0)) # Tühjendage ekraan
pygame.draw.rect (aken, (255, 0, 0),
(mängija_x, mängija_y,
mängija_laius, mängija_kõrgus))
pygame.draw.rect (aken, (0, 255, 0),
(vaenlane_x, vaenlane_y,
vaenlase_laius, vaenlase_kõrgus)) # Joonista vaenlane
pygame.display.update()

pygame.quit()

Käivitage kood ja näete akent mängija tähemärgiga, mida saate vasak- ja paremnooleklahvide abil juhtida.

Nüüd, kui teil on mängu põhiseadistus, määrake mängija tervisega seotud muutujad ja konstandid. Võite kasutada lihtsat tervisesüsteemi, kus saate esitada mängija tervise numbrilise väärtusega. Samuti saate määrata konstandid mängija maksimaalse tervise ja vaenlase tekitatud kahju suuruse jaoks.

Seadke mängija esialgseks terviseseisundiks 100, määrake maksimaalseks terviseseisundiks 100 ja määrake vaenlase kahju väärtuseks 20. Neid väärtusi saab kohandada vastavalt teie mängu konkreetsetele vajadustele.

# Mängija tervis
mängija_tervis = 100
max_tervis = 100
vaenlase_kahju = 20

Kahjude ja paranemise mehaanika rakendamine

Kahjustuste ja paranemismehaanika tutvustamiseks tuleb tuvastada kokkupõrked mängija ja vaenlase vahel ning käsitleda vastavaid tervisemuutusi. Samuti saate rakendada mehhanismi mängija tervendamiseks, kui ta ekraanilt eemaldub.

Kontrollige, kas seal on a kokkupõrge mängija vahel ja vaenlane, võrreldes nende piirnevaid ristkülikuid. Kui avastatakse kokkupõrge, lahutage mängija tervisest vaenlase kahju väärtus.

Lisaks, kui mängija liigub ekraani ülaosast välja (mängija_y < 0), lisage nende tervisele 10 ja veenduge, et see ei ületaks maksimaalset tervist. See loob tervendava mehaaniku ja lähtestab mängija positsiooni ekraani allserva.

Looge uus fail nimega kahju-ja-healing.py ja lisage kood koos allolevate värskendustega:

# Mängutsükli sees, pärast vaenlase positsiooni värskendamist
# Tuvastage kokkupõrge mängija ja vaenlase vahel
kui mängija_x < vaenlane_x + vaenlase_laius ja \
mängija_x + mängija_laius > vaenlane_x ja \
mängija_y < vaenlane_y + vaenlase_kõrgus \
ja mängija_y + mängija_kõrgus > vaenlane_y:
mängija_tervis - = vaenlase_kahju
print (mängija_tervis)

# Tervendage mängija, kui ta ekraanilt eemaldub
kui mängija_y < 0:
mängija_tervis += 10
print (mängija_tervis)
kui player_health > max_health:
mängija_tervis = max_tervis
mängija_y = akna_kõrgus - mängija_kõrgus - 10

Allpool on väljund:

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

Mängija surma ja mängu lõppemise stsenaariumide käsitlemiseks peate kontrollima, kas mängija tervis jõuab nulli. Kui see on nii, kuvage a Mäng läbi sõnum ja taaskäivitage mäng.

Lisage kontroll, et näha, kas mängija tervis langeb alla või võrdub nulliga. Kui see tingimus on tõsi, printige Mäng läbi ning lähtestage mängija tervis ja positsioon.

Looge uus fail nimega manager-player-death.py ja muutke koodi järgmiste värskendustega:

# Pärast mängija positsiooni värskendamist

# Kontrollige, kas mängija tervis jõuab nulli
kui mängija_tervis <= 0:
print("Mäng läbi")
mängija_tervis = max_tervis
mängija_x = akna_laius // 2
mängija_y = akna_kõrgus - mängija_kõrgus - 10

Kaasa arvatud lisafunktsioonid

Tervisesüsteemi edasiseks täiustamiseks saate lisada lisafunktsioone. Allpool on näide:

Võimsused

Määrake sisselülituse atribuudid, näiteks selle mõõtmed ja asukoht. Samuti määrake tervise väärtus, mille mängija saab võimsusega kokkupõrkel.

Tuvastage mängutsüklis kokkupõrkeid mängija ja sisselülitaja vahel. Kui toimub kokkupõrge, suurendage mängija terviseseisundit sisselülituse terviseväärtuse võrra, veendudes, et see ei ületaks maksimaalset terviseseisundit. Seejärel asetage toitelüliti ekraanil juhuslikult ümber. Lõpuks joonistage sinise ristküliku abil ekraanile sisselülitamise objekt.

Looge uus fail nimega power-up.py ja lisage kood koos allolevate värskendustega:

# Määratlege sisselülitamise atribuudid
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# Mängutsükli sees, pärast mängija positsiooni värskendamist
# Tuvastage kokkupõrge mängija ja sisselülitamise vahel
kui mängija_x < power_up_x + power_up_width ja\
mängija_x + mängija_laius > power_up_x \
ja mängija_y < power_up_y + power_up_height\
ja mängija_y + mängija_kõrgus > power_up_y:
mängija_tervis += power_up_health_value
kui player_health > max_health:
mängija_tervis = max_tervis
power_up_x, power_up_y = 200,200

# Joonistage sisselülitusobjekt
pygame.draw.rect (aken, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))

Allpool on väljund:

Iga lisafunktsiooni jaoks saate määratleda vajalikud muutujad ja konstandid ning rakendada mängutsüklis vastavat mehaanikat.

Tervishoiusüsteemi parimad tavad

PyGame'is tervisesüsteemi juurutamisel pidage meeles järgmisi parimaid tavasid.

Rakendage sündmustepõhiseid süsteeme

Selle asemel, et mängutsüklis pidevalt kokkupõrkeid või tervisemuutusi kontrollida, kaaluge sündmustepõhiste süsteemide kasutamist. PyGame pakub sündmuste käsitlemise võimalusi, võimaldades teil käivitada tervisega seotud toiminguid konkreetsete sündmuste, näiteks kokkupõrkesündmuste või sisselülitamise sündmuste põhjal.

Tasakaalustage terviseväärtused

Tasakaalustatud mängukogemuse tagamiseks kohandage oma mängu terviseväärtusi, kahjustuste väärtusi ja paranemismäärasid. Mängu testimine ja mängijatelt tagasiside kogumine aitab teil neid väärtusi optimaalseks mänguks peenhäälestada.

Tagasisidet andma

Veenduge, et mängija saaks oma tervisliku seisundi kohta selget ja sisukat tagasisidet. Kuvage terviseriba ekraanil silmapaistvalt, kasutage visuaalseid vihjeid, nagu värvimuutused või animatsioonid, et näidata kahjustusi või paranemist, ja pakkuda heli- või visuaalseid vihjeid kui mängija tervis saavutab kriitilise taseme.

Neid parimaid tavasid järgides saate luua tugeva ja kaasahaarava tervisesüsteemi, mis aitab kaasa kaasahaaravale mängukogemusele.

Muutke mängud terviseribaga kaasahaaravamaks

Tervisesüsteemi rakendamine ei lisa mitte ainult väljakutseid, vaid muudab mängud ka mängijate jaoks kaasahaaravamaks. Tervise visuaalseid esitusi (nt terviseribasid) lisades saavad mängijad hõlpsasti hinnata oma hetkeseisu ja teha strateegilisi otsuseid. Lisaks võib mängu tasemete lisamine mängukogemust veelgi parandada.