Работа с переменными
Переменные — неотъемлемая часть любого языка программирования, включая GameMaker. Они упрощают создание крупных и сложных проектов.
Для начала, откроем объект obj_player и метод Create. В этом методе создадим переменные. Имена переменных в GameMaker чувствительны к регистру.
Например, создадим переменную speed_player для управления скоростью игрока и присвоим ей значение 4:
speed_player = 4;
Теперь, вместо чисел в коде, можно использовать эту переменную. Изменение скорости потребует лишь изменения значения speed_player.
Созданная в методе Create переменная speed_player является глобальной, видимой во всех частях проекта. Локальные переменные, видимые только в определенном скрипте или функции, объявляются с помощью ключевого слова var:
var right_move = 10;
Переменная right_move видна только в этом скрипте.
Добавление спрайтов и анимация
Для создания персонажа потребуются спрайты (картинки). Найдем четыре спрайта, соответствующие движению персонажа в четырех направлениях (вверх, вниз, влево, вправо).
В GameMaker создадим спрайт spr_player. В редакторе спрайтов импортируем картинку и укажем количество кадров анимации (например, 9). Важно правильно установить размеры кадров (например, 64×64). После этого нажмем «Convert». Повторим для всех четырех направлений.
В редакторе спрайтов установим точку origin в центре спрайта. Это необходимо для корректного вращения и отображения анимации.
Настройка объекта игрока
Изменим картинку для объекта игрока, выбрав соответствующий спрайт. Уменьшим размер коллайдера для улучшения внешнего вида.
В настройках объекта игрока (Object Properties), в методе Create установим:
image_speed = 0; depth = -10;
image_speed = 0 отключит анимацию в состоянии покоя. depth = -10 обеспечит правильное отображение персонажа поверх других объектов.
В методе Step добавим код для управления анимацией:
if (keyboard_check(vk_right)) { sprite_index = spr_player_right; image_speed = 1; } else if (keyboard_check(vk_left)) { sprite_index = spr_player_left; image_speed = 1; } else if (keyboard_check(vk_up)) { sprite_index = spr_player_up; image_speed = 1; } else if (keyboard_check(vk_down)) { sprite_index = spr_player_down; image_speed = 1; } else { image_speed = 0; image_index = 0; // Возвращаем спрайт к первому кадру }
Этот код устанавливает соответствующий спрайт в зависимости от направления движения и останавливает анимацию в состоянии покоя, возвращая спрайт к первому кадру.
В этом уроке мы научились работать с переменными, создавать персонажа с анимацией и настраивать его отображение в GameMaker Studio. В следующих уроках продолжим разработку игры, добавив карту, врагов и другие элементы.