Pagerinkite savo žaidimo patirtį Godot, įtraukdami sveikatos ir žalos sistemą.
Sveikatos ir žalos sistema leidžia žaidėjams padaryti žalą ir prarasti sveikatos taškus susidūrus su kliūtimis ar priešais. Tai taip pat suteikia galimybę atkurti sveikatą įvairiomis priemonėmis, pavyzdžiui, stiprintuvais ar sveikatos paketais.
„Godot“, populiarus atvirojo kodo žaidimų variklis, pateikia paprastą ir lankstų požiūrį į tokių sistemų diegimą. Galite lengvai sukurti 2D žaidimą su žaidėjo personažu, priešu ir sveikatos juosta, kad vizualiai pavaizduotų žaidėjo sveikatą.
„Godot“ žaidimo nustatymas
Pirmiausia nustatykite pagrindinę projekto struktūrą Godot žaidimo variklis ir sukurti reikiamus mazgus.
Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.
Sukurkite naują sceną žaidėjo personažui. Pridėti „KinematicBody2D“. mazgas, o jo viduje pridėkite a CollisionShape2D su stačiakampio forma, vaizduojančia žaidėjo hitbox. Pritvirtinkite a Sprite mazgas prie „KinematicBody2D“. parodyti žaidėjo charakterį.
# 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)
Dabar savo Godot projekte turite pagrindinį žaidėjo personažą. Galite perkelti grotuvą naudodami rodyklių klavišus, bet dar nėra sveikatos sistemos.
„Health Bar“ vartotojo sąsajos elementų kūrimas
Dabar galite pridėti vartotojo sąsajos elementų, kad vizualiai parodytumėte žaidėjo sveikatą. Godot pateikia įmontuotą valdiklį, vadinamą Tekstūros progresas kuris puikiai tinka šiam tikslui.
Sukurkite naują HUD mazgą (angl. heads-up display). Pridėti CanvasLayer mazgas, o jo viduje pridėkite a Tekstūros progresas mazgas. Tinkinkite išvaizdą Tekstūros progresas mazgas pagal jūsų žaidimo stilių ir temą.
Norėdami parodyti sveikatos juostą naudodami Tekstūros progresas HUD, turite jam priskirti tekstūrą. Tekstūros progresas naudoja dvi tekstūras: vieną fonui ir kitą užpildytai daliai (pažangai).
Skydelyje Inspektorius raskite Tekstūra skyrius. Pagal tekstūra, rasite savybių, vadinamų Pagal ir Baigėsi. Spustelėkite Įkelti mygtuką kiekvienai nuosavybei ir pasirinkite atitinkamus vaizdus.
Pridėkite scenarijų prie HUD scenos, kad atnaujintumėte sveikatos juostą pagal žaidėjo sveikatą:
# 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
Žaidėjų sveikatos priežiūra
Norėdami sumažinti žaidėjo sveikatą, kai jie kerta ekrano sieną, galite pridėti a sąlyginis patikrinimas naudojant if teiginį. Jei žaidėjas išeina už ekrano ribų, galite pabloginti jo sveikatą. Štai kaip tai galite pasiekti:
# 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()
Pridėkite update_health_ui() funkcija grotuvas.gd scenarijų, kad iškviestumėte HUD scenarijų ir atnaujintumėte sveikatos juostą.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
Atlikus šiuos pakeitimus, grotuvas dabar patirs žalą, kai peržengs ekrano sieną, o sveikatos juostos vartotojo sąsaja bus atitinkamai atnaujinta.
Įskaitant papildomas funkcijas
Sveikatos ir žalos sistema gali būti išplėsta įvairiomis papildomomis funkcijomis, siekiant pagerinti žaidimo patirtį. Kai kurios idėjos apima:
Sveikatos rinkiniai
Įdiekite sveikatos paėmimo priemones, kurios leistų žaidėjui atkurti savo sveikatą, kai jie bus surinkti. Sveikatos paėmimas gali būti kolekcionuojami daiktai, išsibarstę po visą žaidimų pasaulį, arba apdovanojimai už priešų nugalėjimą.
Kai žaidėjas sąveikauja su sveikatos paėmimu, jo sveikata turėtų padidėti tam tikra suma iki didžiausios vertės. Galite naudoti naują scenarijų sveikatos paėmimo elementui ir tvarkyti susidūrimo bei sveikatos atkūrimo logiką.
Nenugalimumo stiprinimas
Sukurkite galių, kurios suteikia žaidėjui laikiną nenugalimą ribotą laiką. Kai žaidėjas įgyja nenugalimumo jėgą, jis tampa atsparus priešų žalai ar kitoms grėsmėms.
Įdiekite laikmatį, kad galėtumėte sekti likusią nenugalimumo būsenos trukmę, o kai laikmatis baigiasi, žaidėjas grįžta į pažeidžiamą būseną.
Įvairūs priešų tipai
Sukurkite įvairius priešus su skirtingais puolimo modeliais, žalos vertėmis ir elgesiu. Kiekvienas priešo tipas žaidėjui gali kelti unikalių iššūkių ir nugalėti reikalauja skirtingų strategijų.
Pavyzdžiui, kai kurie priešai gali judėti greičiau, padaryti daugiau žalos arba turėti tam tikrų silpnų vietų, kurias žaidėjas gali išnaudoti. Suteikus priešo susidūrimų įvairovę, žaidimas išlieka patrauklus ir neleidžia jam tapti monotonišku.
Sveikatos atkūrimas
Laikui bėgant įgyvendinkite sveikatos atkūrimą, kad atlygintumėte žaidėjams už išvengtą žalos. Kai žaidėjas tam tikrą laiką nepadaro žalos, jo sveikata palaipsniui atsinaujina iki tam tikros ribos.
Tačiau įsitikinkite, kad regeneracijos greitis yra subalansuotas, kad išvengtumėte situacijų, kai žaidėjas gali tiesiog laukti, kol sveikata visiškai atsigaus be jokių iššūkių.
Garso ir vaizdo atsiliepimai
Pateikite įtikinamų garso ir vaizdo atsiliepimų, kai žaidėjas padaro žalą, atkuria sveikatą arba nugali priešus.
Įtakingas Garso efektai be autorių teisių, ekrano drebėjimai, dalelių efektai ir vaizdiniai ženklai gali sustiprinti žaidėjo panardinimą ir padaryti sveikatos bei žalos sistemą dinamiškesnę ir patrauklesnę.
Nepamirškite atsižvelgti į bendrą papildomų funkcijų, kurias pristatote, pusiausvyrą. Tęskite žaidimo testavimą ir rinkkite atsiliepimus, kad užtikrintumėte, jog žaidimo eiga išliktų sudėtinga, maloni ir gero tempo viso žaidimo metu.
Kad „Godot“ žaidimai labiau įtrauktų sveikatos ir žalos sistemą
Sveikatos ir žalos sistemos integravimas į „Godot“ žaidimą prideda gylio ir iššūkių, todėl žaidimas tampa patrauklesnis žaidėjams. Tai apima rizikos ir atlygio elementą, nes žaidėjai turi efektyviai strateguoti ir valdyti savo sveikatą, kad galėtų progresuoti žaidime.
Be to, vaizdinis sveikatos juostos vaizdas suteikia žaidėjams svarbių atsiliepimų apie jų dabartinę būseną ir sustiprina jų panardinimo jausmą.