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.

instagram viewer
# Player.gd
extends KinematicBody2D

const SPEED = 200

var velocity = Vector2.ZERO
var health = 100

func _physics_process(delta):
velocity.x = 0
velocity.y = 0

if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEED

if 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 CanvasLayer

onready 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 KinematicBody2D

const SPEED = 200
const DAMAGE_AMOUNT = 0.1

var velocity = Vector2.ZERO
var health = 100

# Screen boundaries
var screen_size
var margin = 20

func _ready():
screen_size = get_viewport_rect().size

func _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.