Täiustage oma mängukogemust Godot'is, lisades tervise- ja kahjusüsteemi.
Tervise- ja kahjusüsteem võimaldab mängijatel takistuste või vaenlastega kokku puutudes kahju teha ja tervisepunkte kaotada. See võimaldab neil ka tervist taastada erinevate vahenditega, näiteks võimsuse või tervisepakettide abil.
Godot, populaarne avatud lähtekoodiga mängumootor, pakub selliste süsteemide juurutamiseks lihtsat ja paindlikku lähenemisviisi. Saate hõlpsasti luua 2D-mängu mängija tegelaskuju, vaenlase ja terviseribaga, et visuaalselt kujutada mängija tervist.
Godot' mängu seadistamine
Esmalt seadistage projekti põhistruktuur Godoti mängumootor ja luua vajalikud sõlmed.
Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.
Looge mängija tegelasele uus stseen. Lisa KinematicBody2D sõlme ja selle sisse lisage a Kokkupõrkekuju2D ristküliku kujuga, mis esindab mängija tabamust. Kinnitage a Sprite sõlm KinematicBody2D mängija iseloomu kuvamiseks.
# 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)
Nüüd on teie Godoti projektis põhimängija tegelane. Saate mängijat nooleklahvide abil liigutada, kuid tervisesüsteemi pole veel paigas.
Terviseriba kasutajaliidese elementide kujundamine
Nüüd saate lisada kasutajaliidese elemente, et visuaalselt kujutada mängija tervist. Godot pakub sisseehitatud juhtseadet nimega Tekstuuri edenemine mis sobib selleks otstarbeks hästi.
Looge HUD-i jaoks uus sõlm (heads-up display). Lisa CanvasLayer sõlme ja selle sisse lisage a Tekstuuri edenemine sõlm. Kohandage selle välimust Tekstuuri edenemine sõlm vastavalt teie mängu stiilile ja teemale.
Terviseriba kuvamiseks kasutades Tekstuuri edenemine HUD-is peate sellele määrama tekstuuri. Tekstuuri edenemine kasutab kahte tekstuuri: ühte tausta ja teist täidetud osa jaoks (edenemine).
Leidke paneelil Inspektor Tekstuur osa. Under tekstuur, leiad omadused nimega Under ja Läbi. Klõpsake nuppu Laadige nuppu iga omaduse jaoks ja valige vastavad pildid.
Lisage HUD-stseenile skript, et mängija tervisest lähtuvalt terviseriba värskendada.
# 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
Mängija tervise käsitlemine
Mängija tervise halvendamiseks ekraani piiri ületamisel saate lisada a tingimuslik kontroll if-lause abil. Kui mängija läheb ekraanist kaugemale, võite tema tervist halvendada. Selle saavutamiseks tehke järgmist.
# 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()
Lisage update_health_ui() funktsioonis mängija.gd skript HUD-skripti kutsumiseks ja terviseriba värskendamiseks.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
Nende muudatustega saab mängija ekraanipiiri ületamisel kahju ja terviseriba kasutajaliides uueneb vastavalt.
Kaasa arvatud lisafunktsioonid
Tervise ja kahjustuste süsteemi saab mängukogemuse täiustamiseks laiendada erinevate lisafunktsioonidega. Mõned ideed hõlmavad järgmist:
Tervisekorjed
Rakendage tervisekontrolle, mis võimaldavad mängijal kogumisel oma tervist taastada. Tervisekorjed võivad olla kogu mängumaailmas laiali pillutatud kogutavad esemed või preemiad vaenlaste võitmise eest.
Kui mängija suhtleb tervisekontrolliga, peaks tema tervis tõusma teatud summa võrra kuni maksimaalse väärtuseni. Saate kasutada tervisekontrolli üksuse jaoks uut skripti ning käsitleda kokkupõrke ja tervise taastamise loogikat.
Võitmatuse võimendused
Looge võimsusi, mis annavad mängijale piiratud aja jooksul ajutise võitmatuse. Kui mängija kogub võitmatuse võimsuse, muutub ta immuunseks vaenlaste kahjustuste või muude ohtude suhtes.
Rakendage taimer, et jälgida võitmatuse oleku järelejäänud kestust, ja kui taimer saab otsa, naaseb mängija oma haavatavasse olekusse.
Erinevad vaenlase tüübid
Kujundage erinevaid vaenlasi erinevate rünnakumustrite, kahjuväärtuste ja käitumisega. Iga vaenlase tüüp võib mängijale esitada ainulaadseid väljakutseid ja nõuda võitmiseks erinevaid strateegiaid.
Näiteks võivad mõned vaenlased liikuda kiiremini, teha rohkem kahju või omada teatud nõrku kohti, mida mängija saab ära kasutada. Vaenlase kohtumistele mitmekesisuse lisamine hoiab mängu kaasahaaravana ja hoiab ära selle muutumise monotoonseks.
Tervise taastamine
Rakendage tervise taastamist aja jooksul, et premeerida mängijaid kahju vältimise eest. Kui mängija teatud aja jooksul kahju ei tee, taastub tema tervis järk-järgult teatud piirini.
Kuid veenduge, et taastumiskiirus oleks tasakaalus, et vältida olukordi, kus mängija võib lihtsalt oodata, kuni tema tervis täielikult taastub ilma igasuguste väljakutseteta.
Heli- ja visuaalne tagasiside
Pakkuge mõjuvat heli- ja visuaalset tagasisidet, kui mängija saab kahju, taastab tervise või võidab vaenlasi.
Mõjuv autoriõiguseta heliefektid, ekraani värinad, osakeste efektid ja visuaalsed näpunäited võivad parandada mängija keelekümblust ning muuta tervise- ja kahjusüsteemi dünaamilisemaks ja kaasahaaravamaks.
Ärge unustage kaaluda tutvustatavate lisafunktsioonide üldist tasakaalu. Jätkake mängu testimist ja tagasiside kogumist, et mäng püsiks kogu mängu vältel väljakutseid pakkuv, nauditav ja hea tempoga.
Muutke Godoti mängud tervise- ja kahjustussüsteemiga kaasahaaravamaks
Tervise- ja kahjusüsteemi integreerimine oma Godoti mängu lisab sügavust ja väljakutseid, muutes mängu mängijate jaoks kaasahaaravamaks. See tutvustab riski-tasu elementi, kuna mängijad peavad mängus edenemiseks oma tervist tõhusalt välja töötama ja juhtima.
Lisaks annab terviseriba visuaalne esitus mängijatele olulist tagasisidet nende hetkeseisu kohta, parandades nende keelekümblustunnet.