Poboljšajte svoje iskustvo igranja u Godotu uključivanjem sustava zdravlja i štete.
Sustav zdravlja i oštećenja omogućuje igračima da pretrpe štetu i izgube bodove zdravlja kada naiđu na prepreke ili neprijatelje. Također im omogućuje vraćanje zdravlja na različite načine, kao što su pojačanja ili zdravstveni paketi.
Godot, popularni open-source motor za igre, pruža jednostavan i fleksibilan pristup implementaciji takvih sustava. Možete jednostavno stvoriti 2D igru s likom igrača, neprijateljem i trakom zdravlja koja vizualno predstavlja zdravlje igrača.
Postavljanje igre Godot
Prvo postavite osnovnu strukturu projekta Godot game engine i stvoriti potrebne čvorove.
Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.
Napravite novu scenu za lik igrača. Dodati KinematicBody2D čvor, a unutar njega dodajte a CollisionShape2D s pravokutnim oblikom koji predstavlja igračevu hit box. Priložite a Sprite čvor na KinematicBody2D za prikaz karaktera igrača.
# Player.gd
extends KinematicBody2Dconst SPEED = 200
var velocity = Vector2.ZERO
var health = 100func _physics_process(delta):
velocity.x = 0
velocity.y = 0if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEEDif Input.is_action_pressed("ui_down"):
velocity.y += SPEED
elif Input.is_action_pressed("ui_up"):
velocity.y -= SPEED
move_and_collide(velocity * delta)
Sada imate osnovnog igrača u svom Godot projektu. Igrača možete pomicati pomoću tipki sa strelicama, ali još nema zdravstvenog sustava.
Dizajniranje elemenata korisničkog sučelja trake zdravlja
Sada možete dodati elemente korisničkog sučelja kako biste vizualno predstavili zdravlje igrača. Godot pruža ugrađenu kontrolu tzv TextureProgress koji dobro funkcionira za ovu svrhu.
Napravite novi čvor za HUD (heads-up zaslon). Dodati CanvasLayer čvor, a unutar njega dodajte a TextureProgress čvor. Prilagodite izgled TextureProgress čvor prema stilu i temi vaše igre.
Za prikaz trake zdravlja pomoću TextureProgress u HUD-u, trebate mu dodijeliti teksturu. TextureProgress koristi dvije teksture: jednu za pozadinu i drugu za ispunjeni dio (napredak).
Na ploči inspektora pronađite Tekstura odjeljak. Pod, ispod Tekstura, naći ćete svojstva tzv Pod, ispod i Nad. Kliknite na Opterećenje za svako svojstvo i odaberite odgovarajuće slike.
Priložite skriptu HUD sceni za ažuriranje trake zdravlja na temelju zdravlja igrača:
# HUD.gd
extends CanvasLayeronready var healthBar := $TextureProgress
func _ready():
update_health_bar()
func update_health_bar():
var hb = get_parent().get_node("KinematicBody2D")
healthBar.value = hb.health
Rukovanje zdravljem igrača
Da biste smanjili zdravlje igrača kada prijeđe granicu zaslona, možete dodati a uvjetna provjera pomoću naredbe if. Ako igrač izađe izvan zaslona, možete smanjiti njegovo zdravlje. Evo kako to možete postići:
# player.gd
extends KinematicBody2Dconst SPEED = 200
const DAMAGE_AMOUNT = 0.1var velocity = Vector2.ZERO
var health = 100# Screen boundaries
var screen_size
var margin = 20func _ready():
screen_size = get_viewport_rect().sizefunc _physics_process(delta):
#... (existing movement code)
move_and_collide(velocity * delta)var c1 = position.x < -margin
var c2 = position.x > screen_size.x + margin
var c3 = position.y < -margin
var c4 = position.y > screen_size.y + margin# Check if the player is outside the screen boundaries
if c1 or c2 or c3 or c4:
take_damage_on_screen_exit()
func take_damage_on_screen_exit():
health -= DAMAGE_AMOUNT
if health <= 0:
health = 0
# Game over logic here
update_health_ui()
Dodajte update_health_ui() funkcija u igrač.gd skripta za pozivanje HUD skripte i ažuriranje trake zdravlja.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
S ovim promjenama, igrač će sada pretrpjeti štetu kada prijeđe granicu zaslona, a korisničko sučelje zdravstvene trake ažurirat će se u skladu s tim.
Uključujući dodatne značajke
Sustav zdravlja i oštećenja može se proširiti raznim dodatnim značajkama kako bi se poboljšalo iskustvo igranja. Neke ideje uključuju:
Zdravlje Pickups
Implementirajte prikupljanje zdravlja koje igraču omogućuje da vrati svoje zdravlje kada ga pokupi. Zdravlja mogu biti kolekcionarski predmeti razasuti diljem svijeta igre ili nagrade za poraz neprijatelja.
Kada igrač stupi u interakciju s pokupljenim zdravljem, njegovo bi se zdravlje trebalo povećati za određeni iznos, do maksimalne vrijednosti. Možete koristiti novu skriptu za stavku preuzimanja zdravlja i upravljati logikom sudara i obnavljanja zdravlja.
Pojačanja nepobjedivosti
Stvorite pojačanja koja igraču daju privremenu nepobjedivost na ograničeno vrijeme. Kada igrač prikupi pojačanje nepobjedivosti, postaje imun na štetu od neprijatelja ili drugih opasnosti.
Implementirajte mjerač vremena za praćenje preostalog trajanja stanja nepobjedivosti, a kada mjerač vremena istekne, igrač se vraća u svoje ranjivo stanje.
Različiti tipovi neprijatelja
Dizajnirajte razne neprijatelje s različitim obrascima napada, vrijednostima štete i ponašanjima. Svaka vrsta neprijatelja može predstavljati jedinstven izazov za igrača i zahtijevati različite strategije za poraz.
Na primjer, neki se neprijatelji mogu kretati brže, nanijeti više štete ili imati određene slabe točke koje igrač može iskoristiti. Dodavanje raznolikosti neprijateljskim susretima čini igru zanimljivom i sprječava da postane monotona.
Regeneracija zdravlja
S vremenom implementirajte regeneraciju zdravlja kako biste nagradili igrače za izbjegavanje štete. Kada igrač određeno vrijeme ne trpi štetu, njegovo se zdravlje postupno obnavlja do određenog praga.
Međutim, provjerite je li stopa regeneracije uravnotežena kako biste izbjegli situacije u kojima igrač može jednostavno čekati da se njegovo zdravlje u potpunosti oporavi bez ikakvog izazova.
Audio i vizualne povratne informacije
Pružite uvjerljive audio i vizualne povratne informacije kada igrač pretrpi štetu, obnovi zdravlje ili porazi neprijatelje.
Dojmljiv zvučni efekti bez autorskih prava, podrhtavanje zaslona, efekti čestica i vizualni znakovi mogu poboljšati igračevo uživljavanje i učiniti sustav zdravlja i oštećenja dinamičnijim i privlačnijim.
Ne zaboravite uzeti u obzir ukupnu ravnotežu dodatnih značajki koje uvodite. Nastavite s testiranjem i prikupljanjem povratnih informacija kako biste bili sigurni da igranje ostaje izazovno, ugodno i u dobrom ritmu tijekom cijele igre.
Učiniti Godot igre zanimljivijim sa sustavom zdravlja i oštećenja
Integracija sustava zdravlja i štete u vašu igru Godot dodaje dubinu i izazov, čineći igranje privlačnijim za igrače. Uvodi element rizika i nagrade, budući da igrači moraju izraditi strategiju i učinkovito upravljati svojim zdravljem kako bi napredovali u igri.
Osim toga, vizualni prikaz trake zdravlja pruža igračima važne povratne informacije o njihovom trenutnom stanju, povećavajući njihov osjećaj uranjanja.