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

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

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

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.