Найти тему
theХАНТЕР

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

Оглавление

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

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

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

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

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

Скриншот автора
Скриншот автора

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

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

Скриншот автора
Скриншот автора

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

Скриншот автора
Скриншот автора

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

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

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

Скриншот автора
Скриншот автора

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

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

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

Скриншот автора
Скриншот автора

После всех манипуляций, если результат вас устраивает, закрываем окно на кнопку "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" (второй слайд)

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

-26

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

Продолжение следует... Дзен отказывается больше принимать столько картинок и анимации в одну статью.

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

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