Создание вашей первой игры. Без программирования. Часть 2. Главный персонаж

Продолжение первой статьи в которой знакомлю моих читателей с созданием игр, что это не особо сложно и дорого в современных реалиях. Правда если не замахиваться на игры AAA класса.

И так в первой статье я познакомил вас с конструктором игр GDevelop 5, а также с добавлением окружающей среды в игру. В этой статье будем добавлять игрока и учить его взаимодействию с окружением игры. Ну и моё любимое…

Поехали! (с) Гагарин Ю.А.

Добавление игрока (героя) в игру

Открываем наш предыдущий проект и выглядит он всё с той же первой статьи, примерно так, как показано на скриншоте ниже.

Что нам нужно чтобы добавить игрока? Это же конечно спрайты, либо нарисованные вами самими, либо как делаю я в данном цикле статей, использую уже готовые из магазина ассетов. В нашей игре будет два состояния игрока, когда стоит (idle, то есть не под управлением) и ходьба (walk, когда нажаты кнопки для управления).

Идём далее, нажимаешь на «Add a new object» и выбираем из «Sprite». Данный вид используется для создания анимированных объектов таких как: игроки, враги, предметы, платформы. Объект «Sprite» состоит из анимации, и каждая анимация может содержать одно или несколько изображений.

Задаём имя нашему игроку, в данном случае пускай будет «hero». Давайте добавим анимацию нашему персонажу кнопкой «Add an animation».

Анимация добавлена, но всё ещё пустая. Поэтому нажимаем на кнопку «Add» (добавить) со значком плюс и в диалоговом окне находим скачанного нашего персонажа. Если вы используете ссылки из урока, то нам нужна папка с именем «Idle».

Можно дать название вашей анимации, для простоты я также назвал её «Idle»

previous arrow
next arrow
previous arrownext arrow
Slider

Чтобы не добавлять по одной картинке в окне выбора нажимаем комбинацию клавиш «Ctrl+A» (выделить всё) и нажимаем на кнопку «Открыть». Появится диалог, спрашивающий, что вы хотите добавить несколько файлов анимации. Соглашаемся на кнопку «OK» и видим вот такой вот результат, где активируем параметр «Loop» (повтор).

Далее нам нужно отредактировать маску коллизий (установить точки столкновений в игре для персонажа), нажимаем на кнопку «Edit hitboxes» и переходим в редактор маски. Сделаем масштабирование чтобы полностью видеть нашего героя, используя кнопку лупы со знаком минус.

previous arrow
next arrow
previous arrownext arrow
Slider

На втором слайде выше красным выделена область, на которой будет происходит столкновение персонажа в игре. Естественно нас такое не устраивает. Поэтому нажимаем на кнопку «Use a custom collision mask» (своя маска столкновений) и далее нажимаем на кнопку с плюсом.

previous arrow
next arrow
Slider

И что мы видим, в окне просмотра появились красные точки (установки углов столкновений), давайте их расставим по нашему персонажу (обведём его), просто перетаскивая мышью точки в нужные нам позиции.

После всех манипуляций, если результат вас устраивает, закрываем окно на кнопку «Close» и в следующем диалоге кнопка «Apply». В списке объектов игры (панель «Objects») появился наш персонаж. Добавим его в уровень, всё тем же перетаскиванием как дела с тайлами окружения. Применим масштабирование и поставим в любое удобное для вас место на уровне (ну как правило откуда начинается игра).

Если у вас при перемещении персонажа (да и других объектов в игре) они ставятся по сетке, и нужно более точно положение. В окне редактора уровня при перемещении персонажа мышью зажмите клавишу ALT на клавиатуре)

Чтобы увидеть результат проделанной работы нажмём кнопку запуска предварительного просмотра (значок «play» на панели инструментов) и получим примерно вот такой вот результат.

Управление персонажем в игре

В данной части статьи (урока) научим нам персонаж ходить ну и вообще как-то взаимодействовать с игровым миром. Что нам для этого понадобится спросите вы? Показываю.

В окне «Objects» конструктора игр, делаем двойной клик на нашем персонаже или ПКМ (правая кнопка мыши) и выбирает в меню пункт «Edit object» (редактировать объект). Далее в открывшемся окне выбираем вкладку «Behaviors» (поведения) и в нём нажимаем кнопку «Add a behavior to the object» (добавить поведение объекту). Появится окно со списком различного рода уже готовых поведений (действий) для присвоения нашему герою. Нам нужен пункт «Platformer Character», его и выбираем.

Platformer Character — уже готовое поведение игрока классического платформера.

Здесь мы видим много разных параметров, но пока их не трогаем, а нажимаем на кнопку «Apply».
Чтобы было более наглядно, покажу как выглядит добавление действий в анимации, ниже.

Однако не спешите запускать игру, потому что произойдёт вот это…

Почему такое происходит? А потому, что в прошлом уроке я как-то упустил момент, что надо было бы сразу добавить поведение (behavior) нашим платформам. Поэтому исправляем это недоразумение.

Делаем двойной клик на наших тайлах (у меня tile1, tile2) по очереди, но только в окне поведений выбираем свойство «Platform», то есть уже готовой платформы. Дабы не раскидывать это по картинкам, покажу в анимации.

Теперь чтобы удостоверится, запустим вот предварительный просмотр игры ещё раз. И увидим результат (даже можем чуток поиграть уже)

Как видим наш персонаж теперь не проваливается сквозь пол, даже можем им управлять (стрелки на клавиатуре влево (вправо) — передвижение, пробел — прыжок)

Результат хоть и хорош, но всё же как видим не до конца, не хватает анимации при ходьбе. Сказано, сделано…

Двойной клик мышью на объекте «Hero» в менеджере и нажимаем «Add an animation», то есть добавляем ещё одну анимацию. Назовём её «Walk» и по нажатии кнопки «Add» та что с плюсом в проводнике перейдём в папку.

Но и это ещё не всё, чтобы анимация работала как надо, нам понадобится использоваться события (events) в игре.

Игровые события (events)

В главном окне конструктора переходим на вкладу «NewScene (Events)».

В данной вкладке, пока что нет никаких игровых событий, о чём нам и сообщается.

Поэтому добавим наше первое события воспользовавшись кнопкой «Add a new empty event» (добавить пустое событие) на панели инструментов.

Что приведёт нас вот к такому результату

Перед собой мы видим поле (таблицу) разделённое на две части. Слева поле — условия, которое в данный момент пустое (где написано, add condition) и правая сторона поле — действия, также пустое.
Как происходит создание логики для игры в данном конструкторе. В поле условие, добавляем новое условие для объекта, в нашем случае это будет движение персонажа, а в поле действие, добавляется результат, который должен сработать при сопутствующем условии (то есть передвижении игрока). Начнём…

Нажимаем по надписи «Add condition» и в появившемся окне поле поиска вводим (чтобы не искать руками) такой текст «is on floor» (если объект находится на земле).

Среди найденного его и выбираем

С правой стороны в выпадающем списке выбираем нашего персонажа и нажимаем кнопку «Ок».

Так, условие нахождения нашего героя на земле добавили, теперь нам надо добавить проверку передвижения. Для нашего условия создадим дочерние элементы, выберем его и на панели инструментов нажмём кнопку «Add a sub-event to the selected event» (добавить дочернее событие к выбранному элементу).

В только что созданном дочернем элементе, нажимаем «Add condition» и находим условие «is moving» (если двигается). Выбираем в выпадающем списке «Object» (справа) нашего героя и нажимаем кнопку «Ok».
Добавляем ещё один дочерний элемент с условием передвижения, но только активируем параметр «Invert Condition» (второй слайд)

previous arrow
next arrow
previous arrownext arrow
Slider

В итоге, должно получится вот так.

Чтобы мы сделали. Добавили проверку на движение и если движение прекратилось (где включили инверсию).

Ставьте оценки.
Пишите комментарии.
Подписывайтесь

Спасибо за внимание!