Если вы не читали первую часть, то обязательно начните с неё.
Итак, мы установили Game Maker Studio 2 и создали новый проект.
Чтобы сразу оценить возможности этого игрового движка советую поиграть в некоторые игры сделанные на нём:
- Hyper Light Drifter
- Risk of Rain
- Hotline Miami
- И множество других более или менее популярных проектов, мои, сделанные исключительно на нём, можно найти в Google Play по имени разработчика Sharfik.dev
Итак, вернёмся к разработке:
Создадим спрайт, для этого нажмём правой кнопкой мыши на тип ресурса Sprites и в появившемся меню выберем Create Sprite.
Появилось окно редактора спрайта, нажмём отредактировать:
Отредактируем спрайт и сохраним его просто закрыв окно:
Мы вернёмся в рабочую область, сразу переименуем наш спрайт в s_hero.
Теперь создадим новый объект и дадим ему имя o_hero, и укажем спрайт созданный ранее:
Разместим нашего героя в комнате:
У нас уже запуститься игра, но в ней ничего не происходит:
Заурываем игру, и открываем наш объект:
В окне действия мы будем писать код, который игра будет выполнять построчно. Мы указали действие Step, т.е. Шаг, такое события выполняется в игре каждый кадр, т.е. 30 раз в секунду (по умолчанию). Значит код, который мы будем писать, будет выполнен 30 раз в секунду.
Теперь немного о логике, как мы будем двигать на экране наш квадрат:
Каждый кадр игра будет проверять нажата ли какая-то кнопка, если кнопка нажата, и это кнопка из тех которые нам нужны для движения, то мы будем двигать квадрат, вот так:
for Step Event:
if keyboard_check(vk_right) {
x+=5;
}
где:
if- оператор условия языка GML
keyboard_check () - функция, вроде слушателя, проверяющего кнопки, которому в скобках мы должны указать, какую кнопку надо проверять.
vk_right- код кнопки со стрелкой вправо на клавиатуре.
Далее в фигурных скобках мы увеличиваем x-координату нашего героя, чтобы сместить его на 5 пикселей.
Запустим игру и видим что при нажатии стрелки вправо на клавиатуре герой убегает вправо за экран, реализуем движения в другие стороны:
и код отдельно:
if keyboard_check(vk_right) {
x+=5;
}
if keyboard_check(vk_left) {
x-=5;
}
if keyboard_check(vk_down) {
y+=5;
}
if keyboard_check(vk_up) {
y-=5;
}
Попробуйте разобраться в этом коде самостоятельно, я лишь хочу обратить Ваше внимание на направление осей, если в математике мы привыкли направлять ось Y вверх, то тут она направлена вниз.
После того как добавили код, попробуем запустить игру, видим что герой теперь умеет двигаться во все стороны.
На этом я хочу закончить вторую часть. В третьей же части мы рассмотрим:
- как ограничить движение за пределы комнаты.
- научим стрелять нашего персонажа.
-рассмотрим чуть больше по части теории, узнаем немного больше о GML и о программировании.