Uvedite elemente kao što su oštećenje igrača, mehanike liječenja i više uključivanjem zdravstvenog sustava u svoje igre.
Implementacija zdravstvenog sustava u igri može uvelike poboljšati iskustvo igranja i dodati dodatni sloj izazova i strategije. PyGame pruža snažan skup alata i funkcija za uključivanje zdravstvenog sustava, olakšavajući stvaranje interaktivnih iskustava.
Stvorite jednostavnu igru
Prije početka provjerite imate li pip instaliran na vašem sustavu. Koristite ovu naredbu za instalaciju pygame knjižnica:
pip instaliraj pygame
Nakon toga izradite datoteku pod nazivom jednostavna igra.py i započnite stvaranjem jednostavne igre u kojoj se igrač može kretati lijevo i desno.
Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.
U ovoj osnovnoj petlji igre, cilj igrača bit će izbjeći sudar s neprijateljem.
uvoz pygame
uvoz slučajan# Inicijalizirajte PyGame
pygame.init()# Postavite prozor igre
600
širina_prozora, visina_prozora = 800,
prozor = pygame.display.set_mode((širina_prozora, visina_prozora))
pygame.display.set_caption("Demonstracija zdravstvenog sustava")# Atributi igrača
širina_igrača, visina_igrača = 50, 50
igrač_x, igrač_y = širina_prozora // 2, visina_prozora - visina_igrača - 10
brzina_igrača = 1# Atributi neprijatelja
širina_neprijatelja, visina_neprijatelja = 50, 50
neprijatelj_x, neprijatelj_y = random.randint(0, window_width - neprijateljska_širina), 0
brzina_neprijatelja = 0.3# Petlja igre
trčanje = Pravi
dok trčanje:
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno# Pomaknite player lijevo ili desno
tipke = pygame.key.get_pressed()
ako ključevi[pygame. K_LEFT] i igrač_x > 0:
igrač_x -= brzina_igrača
ako ključevi[pygame. K_DESNO] i player_x < window_width - player_width:
igrač_x += brzina_igrača# Pomaknite neprijatelja prema dolje
neprijatelj_y += neprijateljska_brzina# Crtajte objekte igre
window.fill((0, 0, 0)) # Očistite zaslon
pygame.draw.rect (prozor, (255, 0, 0),
(igrač_x, igrač_y,
širina_igrača, visina_igrača))
pygame.draw.rect (prozor, (0, 255, 0),
(neprijatelj_x, neprijatelj_y,
neprijateljska_širina, neprijateljska_visina)) # Nacrtajte neprijatelja
pygame.display.update()
pygame.quit()
Pokrenite kod i vidjet ćete prozor s likom igrača kojim možete upravljati pomoću lijeve i desne tipke sa strelicama.
Sada kada imate osnovne postavke igre, definirajte varijable i konstante koje se odnose na zdravlje igrača. Možete koristiti jednostavan zdravstveni sustav u kojem možete predstaviti zdravlje igrača numeričkom vrijednošću. Također možete definirati konstante za igračevo maksimalno zdravlje i količinu štete koju je nanio neprijatelj.
Postavite početno zdravlje igrača na 100, odredite maksimalno zdravlje na 100 i postavite štetu neprijatelja na 20. Ove se vrijednosti mogu prilagoditi prema specifičnim potrebama vaše igre.
# Zdravlje igrača
zdravlje_igrača = 100
maksimalno_zdravlje = 100
šteta_neprijatelja = 20
Implementacija mehanike oštećenja i liječenja
Da biste uveli mehaniku oštećenja i liječenja, morate otkriti sudare između igrača i neprijatelja i rukovati odgovarajućim promjenama zdravlja. Također možete implementirati mehanizam za izlječenje igrača kada se pomakne sa ekrana.
Provjerite postoji li sudara između igrača a neprijatelja uspoređujući njihove omeđujuće pravokutnike. Ako se otkrije sudar, oduzmite vrijednost neprijateljeve štete od zdravlja igrača.
Osim toga, ako se igrač pomakne s vrha zaslona (igrač_y < 0), dodajte 10 njihovom zdravlju i osigurajte da ne premaši maksimalno zdravlje. Ovo stvara mehaniku iscjeljivanja i vraća igračevu poziciju na dno zaslona.
Stvorite novu datoteku pod nazivom oštećenje-i-liječenje.py i dodajte kod sa sljedećim ažuriranjima:
# Unutar petlje igre, nakon ažuriranja položaja neprijatelja
# Otkrijte sudar između igrača i neprijatelja
ako player_x < neprijatelj_x + širina_neprijatelja i \
player_x + player_width > neprijatelj_x i \
player_y < neprijatelj_y + neprijatelj_visina \
i player_y + player_height > enemy_y:
zdravlje_igrača -= šteta_neprijatelja
ispis (player_health)
# Izliječite igrača kada se pomakne sa ekrana
ako igrač_y < 0:
zdravlje_igrača += 10
ispis (player_health)
ako zdravlje_igrača > maksimalno_zdravlje:
zdravlje_igrača = maksimalno_zdravlje
player_y = window_height - player_height - 10
Ispod je izlaz:
Upravljanje scenarijima smrti igrača i završetka igre
Kako biste riješili scenarije igračeve smrti i završetka igre, morate provjeriti je li igračevo zdravlje doseglo nulu. Ako postoji, prikažite a Igra je gotova poruku i ponovno pokrenite igru.
Dodajte provjeru da vidite pada li igračevo zdravlje ispod ili jednako nuli. Ako je ovaj uvjet istinit, ispišite Igra je gotova i resetirati zdravlje i poziciju igrača.
Stvorite novu datoteku pod nazivom upravljati-smrću-igrača.py i izmijenite kod sa sljedećim ažuriranjima:
# Nakon ažuriranja pozicije igrača
# Provjerite je li zdravlje igrača doseglo nulu
ako zdravlje_igrača <= 0:
ispis("Igra je gotova")
zdravlje_igrača = maksimalno_zdravlje
igrač_x = širina_prozora // 2
player_y = window_height - player_height - 10
Uključujući dodatne značajke
Kako biste dodatno poboljšali zdravstveni sustav, možete uključiti dodatne značajke. Dolje je primjer:
pojačanja
Definirajte atribute pojačanja, kao što su njegove dimenzije i položaj. Također, postavite vrijednost zdravlja koju će igrač dobiti kada se sudara s pojačanjem.
Unutar petlje igre otkrijte kolizije između igrača i pojačanja. Ako dođe do sudara, povećajte zdravlje igrača za vrijednost zdravlja pojačanja, pazeći da ne premaši maksimalno zdravlje. Zatim nasumično premjestite napajanje na zaslonu. Na kraju nacrtajte objekt za uključivanje na ekranu pomoću plavog pravokutnika.
Stvorite novu datoteku pod nazivom napajanje.py i dodajte kod sa sljedećim ažuriranjima:
# Definirajte atribute pojačanja
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50# Unutar petlje igre, nakon ažuriranja pozicije igrača
# Otkrijte koliziju između igrača i pojačanja
ako 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_vrijednost
ako zdravlje_igrača > maksimalno_zdravlje:
zdravlje_igrača = maksimalno_zdravlje
power_up_x, power_up_y = 200,200
# Nacrtajte objekt za pojačavanje
pygame.draw.rect (prozor, (0, 0, 255),
(power_up_x, power_up_y,
power_up_width,
power_up_height))
Ispod je izlaz:
Za svaku dodatnu značajku možete definirati potrebne varijable i konstante te implementirati odgovarajuću mehaniku unutar petlje igre.
Najbolje prakse za zdravstveni sustav
Prilikom implementacije zdravstvenog sustava u PyGame, imajte na umu sljedeće najbolje prakse:
Implementirajte sustave vođene događajima
Umjesto kontinuiranog provjeravanja sudara ili promjena zdravlja unutar petlje igre, razmislite o korištenju sustava vođenih događajima. PyGame pruža mogućnosti rukovanja događajima, omogućujući vam da pokrenete radnje povezane sa zdravljem na temelju određenih događaja, kao što su događaji sudara ili događaji preuzimanja napajanja.
Uravnotežite zdravstvene vrijednosti
Prilagodite vrijednosti zdravlja, vrijednosti štete i stope ozdravljenja u svojoj igri kako biste osigurali uravnoteženo iskustvo igranja. Testiranje igre i prikupljanje povratnih informacija od igrača može vam pomoći u finom podešavanju ovih vrijednosti za optimalno igranje.
Pružiti povratnu informaciju
Osigurajte da igrač dobije jasne i smislene povratne informacije o svom zdravstvenom stanju. Prikažite traku zdravlja uočljivo na zaslonu, koristite vizualne znakove kao što su promjene boja ili animacije za označavanje oštećenja ili zacjeljivanja, i pružiti audio ili vizualne znakove kada zdravlje igrača dosegne kritične razine.
Slijedeći ove najbolje prakse, možete stvoriti robustan i privlačan zdravstveni sustav koji doprinosi impresivnom iskustvu igranja.
Učinite igre privlačnijim uz Health Bar
Implementacija zdravstvenog sustava ne samo da dodaje sloj izazova, već također čini igre privlačnijim za igrače. Uključivanjem vizualnih prikaza zdravlja, kao što su zdravstvene trake, igrači mogu lako procijeniti svoj trenutni status i donijeti strateške odluke. Štoviše, dodavanje razina vašoj igri može dodatno poboljšati iskustvo igranja.