Vylepšite svoj herný zážitok v Godotovi začlenením systému zdravia a poškodenia.

Systém zdravia a poškodenia umožňuje hráčom utrpieť poškodenie a stratiť body zdravia, keď narazia na prekážky alebo nepriateľov. Umožňuje im tiež obnoviť zdravie rôznymi spôsobmi, ako sú vylepšenia alebo balíčky zdravia.

Godot, populárny open-source herný engine, poskytuje priamy a flexibilný prístup k implementácii takýchto systémov. Môžete ľahko vytvoriť 2D hru s postavou hráča, nepriateľom a panelom zdravia, ktorý bude vizuálne reprezentovať zdravie hráča.

Nastavenie hry Godot

Najprv nastavte základnú štruktúru projektu v herný engine Godot a vytvorte potrebné uzly.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Vytvorte novú scénu pre postavu hráča. Pridaj KinematicBody2D uzol a do neho pridajte a CollisionShape2D s obdĺžnikovým tvarom, ktorý predstavuje hitbox hráča. Pripojte a Sprite uzol na KinematicBody2D na zobrazenie postavy hráča.

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)

Teraz máte vo svojom projekte Godot základnú hráčsku postavu. Hráčom môžete pohybovať pomocou šípok, no zatiaľ nie je zavedený žiadny zdravotný systém.

Navrhovanie prvkov používateľského rozhrania panela zdravia

Teraz môžete pridať prvky používateľského rozhrania, ktoré budú vizuálne reprezentovať zdravie hráča. Godot poskytuje vstavaný ovládací prvok tzv TextureProgress ktorý na tento účel funguje dobre.

Vytvorte nový uzol pre HUD (heads-up display). Pridaj CanvasLayer uzol a do neho pridajte a TextureProgress uzol. Prispôsobte vzhľad TextureProgress uzol podľa štýlu a témy vašej hry.

Ak chcete zobraziť panel zdravia pomocou TextureProgress v HUD, musíte mu priradiť textúru. TextureProgress používa dve textúry: jednu pre pozadie a druhú pre vyplnenú časť (pokrok).

Na paneli Inšpektor nájdite textúra oddiele. Pod textúra, nájdete vlastnosti tzv Pod a Koniec. Kliknite na Naložiť pre každú vlastnosť a vyberte príslušné obrázky.

Pripojte skript k scéne HUD a aktualizujte panel zdravia na základe zdravia hráča:

# 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

Zaobchádzanie so zdravím hráča

Ak chcete znížiť zdravie hráča, keď prekročí hranicu obrazovky, môžete pridať a podmienená kontrola pomocou príkazu if. Ak hráč prekročí obrazovku, môžete znížiť jeho zdravie. Môžete to dosiahnuť takto:

# 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()

Pridajte update_health_ui() funkciu v player.gd skript na zavolanie skriptu HUD a aktualizáciu panela stavu.

# Player.gd
extends KinematicBody2D

#... (other code)

func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()

Vďaka týmto zmenám teraz hráč utrpí poškodenie, keď prekročí hranicu obrazovky, a podľa toho sa aktualizuje používateľské rozhranie panela zdravia.

Vrátane ďalších funkcií

Systém zdravia a poškodenia môže byť rozšírený o rôzne doplnkové funkcie na zlepšenie herného zážitku. Niektoré nápady zahŕňajú:

Zdravotné odbery

Implementujte vyzdvihnutie zdravia, ktoré hráčovi umožní obnoviť svoje zdravie po zhromaždení. Zdravotné odbery môžu byť zberateľské predmety roztrúsené po hernom svete alebo odmeny za porazenie nepriateľov.

Keď hráč interaguje s odberom zdravia, jeho zdravie by sa malo zvýšiť o určitú hodnotu až do maximálnej hodnoty. Môžete použiť nový skript pre položku vyzdvihnutia zdravia a spracovať logiku kolízie a obnovy zdravia.

Power-Ups na neporaziteľnosť

Vytvorte vylepšenia, ktoré zaručia hráčovi dočasnú neporaziteľnosť na obmedzený čas. Keď hráč získa vylepšenie o neporaziteľnosti, stane sa imúnnym voči poškodeniu od nepriateľov alebo iných nebezpečenstiev.

Implementujte časovač na sledovanie zostávajúceho trvania stavu neporaziteľnosti a keď časovač vyprší, hráč sa vráti do svojho zraniteľného stavu.

Rôzne typy nepriateľov

Navrhnite rôznych nepriateľov s rôznymi vzormi útokov, hodnotami poškodenia a správaním. Každý typ nepriateľa môže pre hráča predstavovať jedinečné výzvy a na porazenie vyžaduje rôzne stratégie.

Niektorí nepriatelia sa môžu napríklad pohybovať rýchlejšie, spôsobovať väčšie poškodenie alebo mať špecifické slabé miesta, ktoré môže hráč využiť. Pridanie rozmanitosti do nepriateľských stretnutí udržuje hru pútavú a zabraňuje tomu, aby sa stala monotónnou.

Regenerácia zdravia

Postupom času implementujte regeneráciu zdravia, aby ste odmenili hráčov za to, že sa vyhli poškodeniu. Keď hráč neutrpí poškodenie po určitú dobu, jeho zdravie sa postupne regeneruje na určitú hranicu.

Uistite sa však, že miera regenerácie je vyvážená, aby ste sa vyhli situáciám, v ktorých môže hráč jednoducho čakať na úplné zotavenie svojho zdravia bez akýchkoľvek problémov.

Zvuková a vizuálna spätná väzba

Poskytnite presvedčivú zvukovú a vizuálnu spätnú väzbu, keď hráč utrpí poškodenie, obnoví zdravie alebo porazí nepriateľov.

Pôsobivé zvukové efekty bez autorských práv, chvenie obrazovky, časticové efekty a vizuálne podnety môžu zlepšiť ponorenie hráča a spôsobiť, že systém zdravia a poškodenia bude dynamickejší a pútavejší.

Nezabudnite zvážiť celkovú rovnováhu dodatočných funkcií, ktoré uvádzate. Pokračujte v testovaní hry a získavaní spätnej väzby, aby ste zaistili, že hranie zostane počas hry náročné, zábavné a bude mať dobré tempo.

Zapojenie hier Godot do systému zdravia a poškodenia

Integrácia systému zdravia a poškodenia do vašej hry Godot pridáva hĺbku a výzvu, vďaka čomu je hra pre hráčov pútavejšia. Zavádza prvok rizika a odmeny, pretože hráči potrebujú strategicky a efektívne riadiť svoje zdravie, aby napredovali v hre.

Okrem toho vizuálna reprezentácia panela zdravia poskytuje hráčom dôležitú spätnú väzbu o ich aktuálnom stave, čím zvyšuje ich pocit ponorenia.