- А вы знали, что начиная с Урока №5 качество статей улучшилось? Вместо скриншотов, появились гифки (новый формат можете оценить в комментариях). Теперь уроки стали нагляднее! Приятного просмотра!
В прошлых уроках мы научились пользоваться программой Game Maker и создали очень простенькую игру.
В этом уроке я покажу вам максимально проработанное управление персонажем.
1. Создаём объект и добавляем передвижение (если вы помните прошлый урок, то можете пропустить этот пункт).
- Создаём объект. Присваиваем спрайт при создании, через событие Создание.
- Добавляем 4 события нажатия на клавишу (W, A, S, D или на стрелки). В этом же событии добавляем действия движения (Move Fixed) и указываем направление и скорость движения. А также добавляем смену спрайта (Change sprite) и скорость его анимации.
Ниже в формате .Gif наглядно представлены все пункты:
(Листайте вправо)
2. Самая важная часть - остановка персонажа. Ведь он должен не только двигаться, но и останавливаться, верно?
- Добавляем событие Клавиатура -> No key.
- Добавляем действие Test variable - оно нужно для проверки статуса переменной. В Гейм Мейкере есть стандартная переменная sprite_index - она хранит в себе значение спрайта у объекта. В строку variable вводим ту самую переменную "sprite_index". А в строку value вводим проверяемый спрайт (spr_up_player, spr_left_player, spr_down_player, spr_right_player - возможны и другие названия, в зависимости от того, какие ставили вы).
- Далее создаем начало и конец блока (Start of a block и End of a block). Между ними заключаются действия, выполняемые если события соответствуют условиям, прописанным в Test variable.
- Действия заключенные между блоками: смена спрайта и остановка движения. Спрайт меняем на заранее заготовленный - где персонаж стоит к нам передом/боком/задом, в зависимости от того, что мы написали в Test variable (если мы там проверяли была ли анимация хождения вправо, то и спрайт заменяется соответственно на тот, где персонаж стоит повернувшись вправо). А движение (точнее его отсутствие) мы по стандарту выставляем через действие Move Fixed.
- Затем ставим блок Else, что означает "Иначе". То есть если события происходящие в игре не подошли под условие прописанное в Test Variable, то будут проверяться уже другие условия.
- И дальше делаем всё то же самое, только подставляем уже другие направления спрайтов. И да, в самом конце, уже добавлять Else не нужно.
Ниже в формате .Gif наглядно представлены все пункты:
Говоря человеческим языком, это выглядит примерно вот так:
Объект - Персонаж.
Событие - Когда клавиши не нажаты:
Действие:
Происходит проверка текущего спрайта, является ли он спрайтом движения вверх? Если да, то выполняется блок - смена спрайта на стоящего повернутого вверх и остановки движения. Иначе:
Происходит проверка текущего спрайта, является ли он спрайтом движения вниз? Если да, то выполняется блок - смены спрайта на стоящего повернутого вниз и остановки движения. Иначе:
Происходит проверка текущего спрайта, является ли он спрайтом движения влево? Если да, то выполняется блок - смены спрайта на стоящего повернутого влево и остановки движения. Иначе:
Происходит проверка текущего спрайта, является ли он спрайтом движения вправо? Если да, то выполняется блок - смены спрайта на стоящего повернутого вправо и остановки движения. Иначе:
Я особо не заморачивался с тем, чтобы у персонажа была анимация при остановке, но вы можете сделать всё что захотите! (например небольшие движения/подёргивания персонажа, моргание глазами, различные эффекты и частицы и мн. др.)
Вот, урок подошёл к концу.
Предыдущий урок (Урок №4)
Следующий урок (Урок №6) (скоро выйдет!)