Izboljšajte svojo izkušnjo igranja v Godotu z vključitvijo sistema za zdravje in škodo.
Sistem zdravja in škode omogoča igralcem, da prevzamejo škodo in izgubijo zdravstvene točke, ko naletijo na ovire ali sovražnike. Omogoča jim tudi povrnitev zdravja z različnimi sredstvi, kot so okrepitve ali zdravstveni paketi.
Godot, priljubljen odprtokodni igralni mehanizem, zagotavlja preprost in prilagodljiv pristop k implementaciji takih sistemov. Z lahkoto lahko ustvarite 2D igro z likom igralca, sovražnikom in vrstico zdravja, ki vizualno predstavlja igralčevo zdravje.
Nastavitev igre Godot
Najprej nastavite osnovno strukturo projekta igralni motor Godot in ustvarite potrebna vozlišča.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Ustvarite novo sceno za lik igralca. Dodaj a KinematicBody2D vozlišče in znotraj njega dodajte a CollisionShape2D s pravokotno obliko, ki predstavlja igralčev zadetek. Priložite a Sprite vozlišče za KinematicBody2D za prikaz igralčevega značaja.
# 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)
Zdaj imate osnovni lik igralca v vašem projektu Godot. Igralca lahko premikate s puščičnimi tipkami, vendar še ni vzpostavljenega zdravstvenega sistema.
Oblikovanje elementov uporabniškega vmesnika Health Bar
Zdaj lahko dodate elemente uporabniškega vmesnika za vizualno predstavitev igralčevega zdravja. Godot ponuja vgrajen nadzor, imenovan TextureProgress ki dobro deluje za ta namen.
Ustvarite novo vozlišče za HUD (heads-up display). Dodaj a CanvasLayer vozlišče in znotraj njega dodajte a TextureProgress vozlišče. Prilagodite videz TextureProgress vozlišče glede na slog in temo vaše igre.
Za prikaz zdravstvene vrstice uporabite TextureProgress v HUD mu morate dodeliti teksturo. TextureProgress uporablja dve teksturi: eno za ozadje in drugo za zapolnjen del (napredek).
Na plošči inšpektorja poiščite Tekstura razdelek. Spodaj tekstura, boste našli lastnosti, imenovane Spodaj in konec. Kliknite na obremenitev gumb za vsako lastnost in izberite ustrezne slike.
Priložite skript sceni HUD, da posodobite vrstico zdravja glede na zdravje igralca:
# 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
Ravnanje z zdravjem igralca
Če želite zmanjšati zdravje igralca, ko prestopi mejo zaslona, lahko dodate a pogojno preverjanje s stavkom if. Če igralec preseže zaslon, lahko zmanjšate njegovo zdravje. Tukaj je opisano, kako lahko to dosežete:
# 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() funkcijo v igralec.gd skript za klic skripta HUD in posodobitev zdravstvene vrstice.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
S temi spremembami bo igralec zdaj utrpel škodo, ko prestopi mejo zaslona, uporabniški vmesnik vrstice zdravja pa se bo ustrezno posodobil.
Vključno z dodatnimi funkcijami
Sistem zdravja in škode je mogoče razširiti z različnimi dodatnimi funkcijami za izboljšanje igralne izkušnje. Nekatere ideje vključujejo:
Zdravstveni prevzemi
Izvedite zbiranje zdravja, ki igralcu omogoči, da obnovi svoje zdravje, ko ga zbere. Prevzemi zdravja so lahko zbirateljski predmeti, raztreseni po svetu igre, ali nagrade za premagovanje sovražnikov.
Ko igralec komunicira s pobiranjem zdravja, se mora njegovo zdravje povečati za določeno količino, do največje vrednosti. Uporabite lahko nov skript za predmet za prevzem zdravja in obravnavate logiko trkov in obnovitve zdravja.
Ojačanja nepremagljivosti
Ustvarite okrepitve, ki igralcu za omejen čas zagotovijo začasno nepremagljivost. Ko igralec zbere moč nepremagljivosti, postane imun na poškodbe sovražnikov ali druge nevarnosti.
Implementirajte časovnik za spremljanje preostalega trajanja stanja nepremagljivosti in ko se časovnik izteče, se igralec vrne v svoje ranljivo stanje.
Različne vrste sovražnikov
Oblikujte različne sovražnike z različnimi vzorci napadov, vrednostmi škode in vedenjem. Vsaka vrsta sovražnika lahko predstavlja edinstven izziv za igralca in zahteva različne strategije za poraz.
Na primer, nekateri sovražniki se lahko premikajo hitreje, povzročajo več škode ali imajo posebne šibke točke, ki jih igralec lahko izkoristi. Dodajanje raznolikosti v srečanja s sovražniki ohranja igranje zanimivo in preprečuje, da bi postalo monotono.
Regeneracija zdravja
Sčasoma izvajajte regeneracijo zdravja, da nagradite igralce za izogibanje poškodbam. Ko igralec določen čas ne prejema škode, se njegovo zdravje postopoma obnovi do določene meje.
Vendar se prepričajte, da je stopnja regeneracije uravnotežena, da se izognete situacijam, ko lahko igralec preprosto počaka, da si zdravje popolnoma opomore brez izzivov.
Zvočne in vizualne povratne informacije
Zagotovite prepričljive zvočne in vizualne povratne informacije, ko igralec prevzame škodo, obnovi zdravje ali premaga sovražnike.
Vplivno zvočni učinki brez avtorskih pravic, tresenje zaslona, učinki delcev in vizualni znaki lahko povečajo igralčevo potopitev in naredijo sistem zdravja in škode bolj dinamičen in privlačen.
Ne pozabite upoštevati splošnega ravnovesja dodatnih funkcij, ki jih uvedete. Nadaljujte s preizkušanjem igranja in zbirajte povratne informacije, da zagotovite, da bo igranje skozi igro ostalo zahtevno, prijetno in v dobrem tempu.
Izboljšati privlačnost iger Godot s sistemom za zdravje in škodo
Integracija sistema zdravja in škode v vašo igro Godot doda globino in izziv, zaradi česar je igranje bolj zanimivo za igralce. Uvaja element tveganja in nagrade, saj morajo igralci za napredek v igri oblikovati strategijo in učinkovito upravljati svoje zdravje.
Poleg tega vizualna predstavitev vrstice zdravja zagotavlja igralcem pomembne povratne informacije o njihovem trenutnem stanju, kar poveča njihov občutek potopljenosti.