Побољшајте своје искуство играња у Годоу тако што ћете укључити систем здравља и оштећења.

Систем здравља и штете омогућава играчима да претрпе штету и изгубе здравствене поене када наиђу на препреке или непријатеље. Такође им омогућава да поврате здравље на различите начине, као што су појачања или здравствени пакети.

Годот, популарни мотор за игре отвореног кода, пружа директан и флексибилан приступ имплементацији таквих система. Можете лако да креирате 2Д игру са ликом играча, непријатељем и траком здравља како бисте визуелно представили здравље играча.

Подешавање игре Годо

Прво, поставите основну структуру пројекта у мотор игре Годот и креирати потребне чворове.

Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

Направите нову сцену за лик играча. Додајте а КинематицБоди2Д чвор, а унутар њега додајте а ЦоллисионСхапе2Д са обликом правоугаоника који представља поље за погодак играча. Приложите а Сприте чвор за КинематицБоди2Д за приказ карактера играча.

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)

Сада имате основни лик играча у свом Годот пројекту. Можете да померате играча помоћу тастера са стрелицама, али још увек нема успостављен здравствени систем.

Дизајнирање елемената корисничког интерфејса траке здравља

Сада можете да додате елементе корисничког интерфејса да визуелно представите здравље играча. Годот обезбеђује уграђену контролу тзв ТектуреПрогресс који добро функционише за ову сврху.

Направите нови чвор за ХУД (хеадс-уп дисплеј). Додајте а ЦанвасЛаиер чвор, а унутар њега додајте а ТектуреПрогресс чвор. Прилагодите изглед ТектуреПрогресс чвор према стилу и теми ваше игре.

Да бисте приказали траку здравља помоћу ТектуреПрогресс у ХУД-у, потребно је да му доделите текстуру. ТектуреПрогресс користи две текстуре: једну за позадину и другу за испуњени део (напредак).

На панелу Инспектор, пронађите Текстура одељак. Испод текстура, наћи ћете својства тзв Испод и Готово. Кликните Учитај дугме за свако својство и изаберите одговарајуће слике.

Приложите скрипту ХУД сцени да бисте ажурирали траку здравља на основу здравља играча:

# 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

Руковање здрављем играча

Да бисте смањили здравље играча када пређу границу екрана, можете додати а условна провера коришћењем иф наредбе. Ако играч иде даље од екрана, можете смањити његово здравље. Ево како то можете постићи:

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

Додајте упдате_хеалтх_уи() функција у плаиер.гд скрипту за позивање ХУД скрипте и ажурирање траке здравља.

# Player.gd
extends KinematicBody2D

#... (other code)

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

Са овим променама, играч ће сада претрпети штету када пређе границу екрана, а кориснички интерфејс траке здравља ће се ажурирати у складу са тим.

Укључујући додатне функције

Систем здравља и оштећења може се проширити разним додатним функцијама како би се побољшало искуство играња. Неке идеје укључују:

Хеалтх Пицкупс

Спроведите подизање здравља који омогућавају играчу да поврати своје здравље када се прикупи. Покупци здравља могу бити колекционарски предмети разбацани по целом свету игара или награде за победу над непријатељима.

Када играч ступи у интеракцију са подизањем здравља, његово здравље би требало да се повећа за одређени износ, до максималне вредности. Можете користити нову скрипту за ставку преузимања здравља и управљати логиком колизије и обнављања здравља.

Појачања за непобедивост

Креирајте појачања која играчу дају привремену непобедивост на ограничено време. Када играч прикупи појачање непобедивости, постаје имун на штету од непријатеља или других опасности.

Примените тајмер да бисте пратили преостало трајање стања непобедивости, а када тајмер истекне, играч се враћа у своје рањиво стање.

Различити типови непријатеља

Дизајнирајте разне непријатеље са различитим обрасцима напада, вредностима штете и понашањима. Сваки тип непријатеља може представљати јединствене изазове за играча и захтевати различите стратегије за пораз.

На пример, неки непријатељи се могу кретати брже, нанети више штете или имати специфичне слабе тачке које играч може да искористи. Додавање разноликости непријатељским сусретима одржава игру занимљивом и спречава да постане монотона.

Регенерација здравља

Спроведите регенерацију здравља током времена да бисте наградили играче за избегавање штете. Када играч не узима штету одређено време, његово здравље се постепено обнавља до одређеног прага.

Међутим, уверите се да је стопа регенерације уравнотежена како бисте избегли ситуације у којима играч може једноставно да сачека да се његово здравље потпуно опорави без икаквих изазова.

Аудио и визуелне повратне информације

Обезбедите убедљиве аудио и визуелне повратне информације када играч нанесе штету, поврати здравље или победи непријатеље.

Импацтфул звучни ефекти без ауторских права, подрхтавање екрана, ефекти честица и визуелни знаци могу побољшати урањање играча и учинити да се систем здравља и оштећења осећа динамичнијим и привлачнијим.

Не заборавите да размотрите укупну равнотежу додатних функција које уводите. Наставите са тестирањем и прикупљањем повратних информација како бисте осигурали да играње остане изазовно, пријатно и доброг темпа током игре.

Учините Годот игре више ангажованим са системом здравља и оштећења

Интегрисање система здравља и оштећења у вашу Годот игру додаје дубину и изазов, чинећи игру занимљивијом за играче. Уводи елемент ризик-награда, јер играчи морају да израде стратегију и ефикасно управљају својим здрављем да би напредовали у игри.

Поред тога, визуелни приказ траке здравља пружа играчима важне повратне информације о њиховом тренутном стању, побољшавајући њихов осећај уроњења.