Побољшајте своје искуство играња у Годоу тако што ћете укључити систем здравља и оштећења.
Систем здравља и штете омогућава играчима да претрпе штету и изгубе здравствене поене када наиђу на препреке или непријатеље. Такође им омогућава да поврате здравље на различите начине, као што су појачања или здравствени пакети.
Годот, популарни мотор за игре отвореног кода, пружа директан и флексибилан приступ имплементацији таквих система. Можете лако да креирате 2Д игру са ликом играча, непријатељем и траком здравља како бисте визуелно представили здравље играча.
Подешавање игре Годо
Прво, поставите основну структуру пројекта у мотор игре Годот и креирати потребне чворове.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
Направите нову сцену за лик играча. Додајте а КинематицБоди2Д чвор, а унутар њега додајте а ЦоллисионСхапе2Д са обликом правоугаоника који представља поље за погодак играча. Приложите а Сприте чвор за КинематицБоди2Д за приказ карактера играча.
# 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)
Сада имате основни лик играча у свом Годот пројекту. Можете да померате играча помоћу тастера са стрелицама, али још увек нема успостављен здравствени систем.
Дизајнирање елемената корисничког интерфејса траке здравља
Сада можете да додате елементе корисничког интерфејса да визуелно представите здравље играча. Годот обезбеђује уграђену контролу тзв ТектуреПрогресс који добро функционише за ову сврху.
Направите нови чвор за ХУД (хеадс-уп дисплеј). Додајте а ЦанвасЛаиер чвор, а унутар њега додајте а ТектуреПрогресс чвор. Прилагодите изглед ТектуреПрогресс чвор према стилу и теми ваше игре.
Да бисте приказали траку здравља помоћу ТектуреПрогресс у ХУД-у, потребно је да му доделите текстуру. ТектуреПрогресс користи две текстуре: једну за позадину и другу за испуњени део (напредак).
На панелу Инспектор, пронађите Текстура одељак. Испод текстура, наћи ћете својства тзв Испод и Готово. Кликните Учитај дугме за свако својство и изаберите одговарајуће слике.
Приложите скрипту ХУД сцени да бисте ажурирали траку здравља на основу здравља играча:
# 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
Руковање здрављем играча
Да бисте смањили здравље играча када пређу границу екрана, можете додати а условна провера коришћењем иф наредбе. Ако играч иде даље од екрана, можете смањити његово здравље. Ево како то можете постићи:
# 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()
Додајте упдате_хеалтх_уи() функција у плаиер.гд скрипту за позивање ХУД скрипте и ажурирање траке здравља.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
Са овим променама, играч ће сада претрпети штету када пређе границу екрана, а кориснички интерфејс траке здравља ће се ажурирати у складу са тим.
Укључујући додатне функције
Систем здравља и оштећења може се проширити разним додатним функцијама како би се побољшало искуство играња. Неке идеје укључују:
Хеалтх Пицкупс
Спроведите подизање здравља који омогућавају играчу да поврати своје здравље када се прикупи. Покупци здравља могу бити колекционарски предмети разбацани по целом свету игара или награде за победу над непријатељима.
Када играч ступи у интеракцију са подизањем здравља, његово здравље би требало да се повећа за одређени износ, до максималне вредности. Можете користити нову скрипту за ставку преузимања здравља и управљати логиком колизије и обнављања здравља.
Појачања за непобедивост
Креирајте појачања која играчу дају привремену непобедивост на ограничено време. Када играч прикупи појачање непобедивости, постаје имун на штету од непријатеља или других опасности.
Примените тајмер да бисте пратили преостало трајање стања непобедивости, а када тајмер истекне, играч се враћа у своје рањиво стање.
Различити типови непријатеља
Дизајнирајте разне непријатеље са различитим обрасцима напада, вредностима штете и понашањима. Сваки тип непријатеља може представљати јединствене изазове за играча и захтевати различите стратегије за пораз.
На пример, неки непријатељи се могу кретати брже, нанети више штете или имати специфичне слабе тачке које играч може да искористи. Додавање разноликости непријатељским сусретима одржава игру занимљивом и спречава да постане монотона.
Регенерација здравља
Спроведите регенерацију здравља током времена да бисте наградили играче за избегавање штете. Када играч не узима штету одређено време, његово здравље се постепено обнавља до одређеног прага.
Међутим, уверите се да је стопа регенерације уравнотежена како бисте избегли ситуације у којима играч може једноставно да сачека да се његово здравље потпуно опорави без икаквих изазова.
Аудио и визуелне повратне информације
Обезбедите убедљиве аудио и визуелне повратне информације када играч нанесе штету, поврати здравље или победи непријатеље.
Импацтфул звучни ефекти без ауторских права, подрхтавање екрана, ефекти честица и визуелни знаци могу побољшати урањање играча и учинити да се систем здравља и оштећења осећа динамичнијим и привлачнијим.
Не заборавите да размотрите укупну равнотежу додатних функција које уводите. Наставите са тестирањем и прикупљањем повратних информација како бисте осигурали да играње остане изазовно, пријатно и доброг темпа током игре.
Учините Годот игре више ангажованим са системом здравља и оштећења
Интегрисање система здравља и оштећења у вашу Годот игру додаје дубину и изазов, чинећи игру занимљивијом за играче. Уводи елемент ризик-награда, јер играчи морају да израде стратегију и ефикасно управљају својим здрављем да би напредовали у игри.
Поред тога, визуелни приказ траке здравља пружа играчима важне повратне информације о њиховом тренутном стању, побољшавајући њихов осећај уроњења.