GameMaker Studio: Переменные, персонаж и анимация (Урок 4)

Работа с переменными

Переменные — неотъемлемая часть любого языка программирования, включая 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. В следующих уроках продолжим разработку игры, добавив карту, врагов и другие элементы.

Что будем искать? Например,программа