GameMaker Studio: Фон, тени и скрипты (Урок 5)

Добавление заднего фона

Добавьте задний фон в комнату. Вам понадобится изображение (например, 32×32 пикселя). Создайте новый спрайт, импортировав изображение. Назовите его bg_ground.

Создайте новый тайлсет, например, Tiles. Выберите импортированный спрайт bg_ground. Закройте окно.

В настройках комнаты (двойной клик на комнате) добавьте созданный тайлсет Tiles. Выберите любой квадратик тайлсета (прозрачный элемент допустим) и заполните им комнату.

Убедитесь, что слой Instances (слой с игровыми объектами) находится над слоем с задним фоном.

Добавление тени для игрока

Создайте тень для игрока (9 спрайтов анимации). Количество спрайтов тени должно соответствовать количеству спрайтов анимации игрока. Импортируйте спрайт тени и назовите его shadow.

В событии Draw объекта игрока (Player) добавьте код:

draw_sprite(shadow, image_index, x, y);
draw_sprite(sprite_index, image_index, x, y);

Первая строка рисует тень, вторая — игрока. image_index синхронизирует анимацию тени и игрока.

Если тень отображается некорректно (слишком большая), измените размеры спрайта shadow (например, уменьшите вдвое относительно размера спрайта игрока). Установите ширину и высоту, например, 17 пикселей.

Работа со скриптами

Скрипты объединяют повторяющиеся фрагменты кода. Рассмотрим пример обработки ввода игрока.

Выделите повторяющийся код из события игрока (например, код обработки движения).

Создайте новый скрипт (player_input). Вставьте вырезанный код в скрипт. Убедитесь, что используемые переменные являются глобальными.

В событии игрока замените вырезанный код вызовом скрипта:

player_input();

Теперь код обработки ввода находится в отдельном скрипте и может быть повторно использован.

Плавное перемещение камеры

Создайте объект (obj_view) без спрайта. В событии Step добавьте код:

x += (obj_player.x - x) * 0.1;
y += (obj_player.y - y) * 0.1;

Этот код плавно перемещает камеру к игроку. В настройках комнаты выберите obj_view как объект, за которым следует камера. Оператор += накапливает изменения позиции.

В этом уроке мы научились создавать тени, добавлять задний фон, использовать скрипты для организации кода и добавлять плавное перемещение камеры. Это улучшает визуальное восприятие и упрощает разработку игры.

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