Дневник разработки или что-то вроде того #3

Пропал на некоторое время из-за большого количества работы.

В этот раз могу сказать что я проделал (лично для себя) достаточно большой пласт работы над главным героем игры. Добавил ему хп, респ и атаку.

Хитпоинты, смерть и респавн

Так как игра в жанре roguelike все развитие персонажа будет проходить через смерти. Следовательно нужно обязательно добавить гг жизни и возможность умереть.

Системы для этого стандартные и известные поэтому проблем не было и сразу выложу кусок кода для этого дела:

Дневник разработки или что-то вроде того #3

Собственно тут все просто. Создаем Float переменную и называем её health. Выдаем ей нужную цифру и сразу переходим к системе смерти главного героя.

Создаем Boolean переменную и кастомный ивент Death вытаскиваем наш is dead на поле и выбираем пункт Set, затем ставим галочку и составляем систему проверки смерти.

Добавляем Event tick и подключаем к ноду Branch. Это и есть наш нод проверки. Перетаскиваем созданную health на поле и ставим проверку на нужное для смерти значение, а так же на проверку is death. Чтобы наш персонаж умер нужно чтобы и значение health было равно нулю и гг был не мертв. Далее к значению true подключаем кастомный ивент Death и его подключаем к ивенту Respawn который мы сейчас и создадим.

Собственно тут все еще проще. Создаем кастомный ивент, снова вытаскиваем нашу переменную is death и НЕ ставим галочку чтобы переключить её на отрицание. Далее вытаскиваем переменную health и выставляем нужное значение, затем подключаем к ноду SetActorTransform и ставим координаты респа персонажа.

Система жизни, смерти и респавна создана.

ГГ пацифист

После того как я сделяль смерть и проверил её перешёл к главной возможности героя - ломать лица. Однако здесь уже и возникли проблемы снова с нодами Set Flipbook.

Дело в том что два и более нодов конфликтуют между собой и приходиться придумывать тысячу условий для того чтобы показать анимацию через всего лишь один такой элемент.

В итоге я пришел к решению продолжения условий ветки анимации передвижения. Выглядит вот так:

Дневник разработки или что-то вроде того #3

Здесь я создал кастомный ивент lb pressed и boolean переменную atack которая и дает сигнал Set Flipbook показать именно анимацию атаки. Далее в настройках проекта в разделе input выставил action mappings на левую кнопку мыши. В нашем блупринте вывел этот ивент и от выхода pressed вывел подключение на кастомный ивент, поставил задержку для проигрывания анимации и переключил atack в отрицание.

Работает это вот так:

В следующем посте планирую показать итемы, подбор и использование.

Как всегда не против замечаний, советов и критики.

22
Начать дискуссию