Кретање играча игра кључну улогу у томе да Годо игре буду привлачније. Научите како да га примените.

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

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

Да бисте започели, направите нови 2Д пројекат у Годот Гаме Енгине. Затим пратите ове кораке да бисте својој игри додали кретање играча

Направите нову сцену десним кликом на Систем датотека панел, а затим изаберите Нова фасцикла и именујући га Сцене. Унутар Сцене фолдер, кликните десним тастером миша и креирајте нову 2Д сцену. Сачувајте га под одговарајућим именом, нпр. Плаиер.тсцн.

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

Додајте а ЦхарацтерБоди2Д чвор на сцену кликом на Додај чвор дугме и бирање ЦхарацтерБоди2Д из библиотеке чворова.

Са ЦхарацтерБоди2Д изабран чвор, кликните на

instagram viewer
Додајте подређени чвор дугме за додавање а ЦоллисионСхапе2Д. Подесите облик ЦоллисионСхапе2Д да одговара димензијама играча. За једноставност можете користити правоугаоник.

Затим додајте а Сприте2Д компонента за ЦхарацтерБоди2Д чвор и изаберите одговарајући сприте за ваш лик играча.

Додавање покрета играча помоћу уноса са тастатуре

Сада можете да додате кретање играча помоћу уноса са тастатуре Плаиер.гд скрипта.

Проширите ЦхарацтерБоди2Д чвор, подесите брзину кретања и добијете унос помоћу тастера са стрелицама (уи_лефт, уи_ригхт, уи_уп, уи_довн). Израчунајте брзину кретања на основу смера уноса, нормализујте је, а затим померите играча помоћу мове_анд_цоллиде функција у _пхисицс_процесс методом.

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO
if Input.is_action_pressed("ui_left"):
input_dir.x -= 1
if Input.is_action_pressed("ui_right"):
input_dir.x += 1
if Input.is_action_pressed("ui_up"):
input_dir.y -= 1
if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Додавање ротације

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

extends CharacterBody2D

@export var speed = 400
@export var rotation_speed = 1.5

var rotation_direction = 0

func get_input():
rotation_direction = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity = transform.x * (Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down")) * speed

func _physics_process(delta):
get_input()
rotation += rotation_direction * rotation_speed * delta
move_and_slide()

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

Додавање покрета играча помоћу уноса мишем

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

extends CharacterBody2D

@export var speed = 300

func _physics_process(delta):
if Input.is_action_just_pressed("click"):
var target_position = get_global_mouse_position()
var direction = (target_position - global_position).normalized()
velocity = direction * speed * delta
move_and_collide(velocity)

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

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

extends CharacterBody2D

func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction

У овој верзији, играчев срајт ће бити директно окренут ка положају показивача миша.

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

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

Скакање

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

Дасх или Спринт

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

Клизање по зиду и пењање

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

Платформер Мецханицс

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

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

Најбоље праксе за додавање покрета играча

Када је у питању имплементација кретања играча у вашој игри Годот, пратите ове најбоље праксе не само да ће ваш код учинити чистијим и ефикаснијим, већ ће допринети и бољем играчу искуство:

Одвојене бриге

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

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

Користите Делта Тиме

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

Ограничите брзину кретања

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

Размотрите физичке слојеве и маске судара

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

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

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

Учините Годот игре привлачнијим за кретање играча

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

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