Uzlabojiet savu spēles pieredzi Godot, iekļaujot veselības un bojājumu sistēmu.

Veselības un bojājumu sistēma ļauj spēlētājiem gūt bojājumus un zaudēt veselības punktus, kad viņi saskaras ar šķēršļiem vai ienaidniekiem. Tas arī ļauj viņiem atjaunot veselību, izmantojot dažādus līdzekļus, piemēram, jaudu vai veselības komplektus.

Godot, populārs atvērtā pirmkoda spēļu dzinējs, nodrošina vienkāršu un elastīgu pieeju šādu sistēmu ieviešanai. Varat viegli izveidot 2D spēli ar spēlētāja tēlu, ienaidnieku un veselības joslu, lai vizuāli attēlotu spēlētāja veselību.

Godota spēles iestatīšana

Vispirms iestatiet projekta pamata struktūru Godot spēļu dzinējs un izveidojiet nepieciešamos mezglus.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Izveidojiet jaunu ainu spēlētāja varonim. Pievienojiet a KinematicBody2D mezglu, un tā iekšpusē pievienojiet a CollisionShape2D ar taisnstūra formu, lai attēlotu spēlētāja hitbox. Pievienojiet a Sprite mezgls uz KinematicBody2D lai parādītu spēlētāja raksturu.

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)

Tagad jums ir pamata spēlētāja varonis jūsu Godot projektā. Varat pārvietot atskaņotāju, izmantojot bulttaustiņus, taču vēl nav izveidota veselības sistēma.

Veselības joslas lietotāja interfeisa elementu projektēšana

Tagad varat pievienot lietotāja interfeisa elementus, lai vizuāli attēlotu spēlētāja veselību. Godot nodrošina iebūvētu vadību, ko sauc TextureProgress kas labi darbojas šim nolūkam.

Izveidojiet jaunu mezglu HUD (uzmanības displejs). Pievienojiet a CanvasLayer mezglu, un tā iekšpusē pievienojiet a TextureProgress mezgls. Pielāgojiet izskatu TextureProgress mezglu atbilstoši jūsu spēles stilam un tēmai.

Lai parādītu veselības joslu, izmantojot TextureProgress HUD, jums ir jāpiešķir tam tekstūra. TextureProgress izmanto divas faktūras: vienu fonam un otru aizpildītajai daļai (progresam).

Inspektora panelī atrodiet Tekstūra sadaļā. Zem tekstūra, jūs atradīsiet īpašumus ar nosaukumu Zem un Beigās. Noklikšķiniet uz Ielādēt pogu katram īpašumam un atlasiet atbilstošos attēlus.

Pievienojiet skriptu HUD ainai, lai atjauninātu veselības joslu, pamatojoties uz spēlētāja veselību:

# 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

Spēlētāju veselības pārvaldība

Lai pasliktinātu spēlētāja veselību, kad viņš šķērso ekrāna robežu, varat pievienot a nosacījuma pārbaude, izmantojot if paziņojumu. Ja spēlētājs pārsniedz ekrānu, jūs varat pasliktināt viņa veselību. Lūk, kā to varat sasniegt:

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

Pievienojiet update_health_ui() funkcija player.gd skriptu, lai izsauktu HUD skriptu un atjauninātu veselības joslu.

# Player.gd
extends KinematicBody2D

#... (other code)

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

Izmantojot šīs izmaiņas, atskaņotājs tagad nodarīs bojājumus, šķērsojot ekrāna robežu, un veselības joslas lietotāja interfeiss tiks attiecīgi atjaunināts.

Ieskaitot papildu funkcijas

Veselības un bojājumu sistēmu var paplašināt ar dažādām papildu funkcijām, lai uzlabotu spēles pieredzi. Dažas idejas ietver:

Veselības pikaps

Ieviesiet veselības paņēmienus, kas ļauj spēlētājam atjaunot savu veselību, kad tas tiek savākts. Veselības komplekti var būt kolekcionējami priekšmeti, kas izkaisīti visā spēļu pasaulē, vai balvas par ienaidnieku sakaušanu.

Kad spēlētājs mijiedarbojas ar veselības pacēlāju, viņa veselības stāvoklim vajadzētu palielināties par noteiktu summu līdz maksimālajai vērtībai. Varat izmantot jaunu skriptu veselības paņemšanas vienumam un apstrādāt sadursmes un veselības atjaunošanas loģiku.

Neuzvaramības pastiprinājumi

Izveidojiet jaudu, kas nodrošina spēlētājam īslaicīgu neuzvaramību uz ierobežotu laiku. Kad spēlētājs iegūst neuzvaramības spēku, viņš kļūst imūns pret ienaidnieku bojājumiem vai citiem apdraudējumiem.

Ieviesiet taimeri, lai izsekotu atlikušajam neuzvaramības stāvokļa ilgumam, un, kad taimeris beidzas, spēlētājs atgriežas savā neaizsargātajā stāvoklī.

Dažādi ienaidnieku veidi

Izveidojiet dažādus ienaidniekus ar dažādiem uzbrukuma modeļiem, bojājumu vērtībām un uzvedību. Katrs ienaidnieka veids var radīt unikālus izaicinājumus spēlētājam un prasīt dažādas stratēģijas, lai uzvarētu.

Piemēram, daži ienaidnieki var kustēties ātrāk, nodarīt vairāk bojājumu vai tiem ir specifiski vājie punkti, kurus spēlētājs var izmantot. Pievienojot dažādību ienaidnieku sadursmēm, spēle kļūst saistoša un neļauj tai kļūt vienmuļai.

Veselības atjaunošana

Laika gaitā ieviesiet veselības atjaunošanu, lai atalgotu spēlētājus par izvairīšanos no bojājumiem. Ja spēlētājs noteiktu laiku nedara bojājumus, viņa veselība pakāpeniski atjaunojas līdz noteiktam slieksnim.

Tomēr pārliecinieties, ka atjaunošanās ātrums ir līdzsvarots, lai izvairītos no situācijām, kad spēlētājs var vienkārši gaidīt, kad viņa veselība pilnībā atveseļosies bez jebkādām problēmām.

Audio un vizuālās atsauksmes

Sniedziet pārliecinošu audio un vizuālo atgriezenisko saiti, kad spēlētājs nodara bojājumus, atjauno veselību vai uzvar ienaidniekus.

Ietekmīgs autortiesībām brīvi skaņas efekti, ekrāna satricinājumi, daļiņu efekti un vizuālās norādes var uzlabot atskaņotāja iedziļināšanos un padarīt veselības un bojājumu sistēmu dinamiskāku un saistošāku.

Atcerieties ņemt vērā kopējo ieviesto papildu funkciju līdzsvaru. Turpiniet spēles testēšanu un vāciet atsauksmes, lai nodrošinātu, ka spēle joprojām ir izaicinoša, patīkama un vienmērīga spēles tempā.

Padarot Godot spēles saistošākas ar veselību un bojājumu sistēmu

Veselības un bojājumu sistēmas integrēšana savā Godot spēlē palielina dziļumu un izaicinājumu, padarot spēli spēlētājiem saistošāku. Tas ievieš riska un atlīdzības elementu, jo spēlētājiem ir jāizstrādā stratēģija un efektīvi jāpārvalda sava veselība, lai progresētu spēlē.

Turklāt veselības joslas vizuālais attēlojums sniedz spēlētājiem svarīgu atgriezenisko saiti par viņu pašreizējo stāvokli, uzlabojot viņu iegremdēšanas sajūtu.