GameMaker Studio: Урок 2 — Создание уровня в Room 0

Начало работы: комнаты (Rooms)

В Game Maker уровни называются «комнатами» (Rooms). По умолчанию создается комната Room 0. Чтобы добавить новую комнату, щелкните правой кнопкой мыши и выберите «Add Room». Мы будем использовать существующую Room 0. Дважды щелкните на Room 0, чтобы открыть редактор комнаты. Вы увидите черный квадрат, который можно перемещать, масштабировать и вращать мышью. Оставьте видимой сетку.

Настройка размеров уровня

В редакторе комнаты, на вкладке «Properties», укажите ширину и высоту уровня: 640×360 пикселей.

Добавление объектов на уровень

Перетащите объекты из палитры объектов на рабочую область комнаты. Разместите объекты, образующие периметр уровня. Создавайте спрайты размером 32×32 пикселя, чтобы избежать масштабирования. Добавьте стены по периметру, игрока и несколько препятствий. Расположение объектов зависит от вашей задумки.

Запуск игры

Сохраните проект и запустите игру (нажав на кнопку запуска). Вы увидите простейшую версию игры: несколько квадратов на черном фоне. В последующих уроках мы улучшим внешний вид и добавим функциональность.

Настройка физики и коллизий

В редакторе комнаты, на вкладке «Physics», включите физику. Установите Gravity X и Gravity Y в ноль, чтобы отменить гравитацию. Переименуйте комнату в Room 1.

Дважды щелкните на объекте игрока (Player). Во вкладке Physics установите флажок Use Physics. Параметры физики оставьте по умолчанию. Нажмите на кнопку Shape и настройте форму коллизии, точно соответствующую спрайту игрока. Повторите для всех взаимодействующих с игроком объектов (стены, препятствия). Для стен установите высокое значение Density (например, 0.0), чтобы они были неподвижны.

Добавление функциональности: события (Events)

Дважды щелкните на объекте игрока и перейдите во вкладку Events. Добавьте событие KeyDown. Выберите действие Keyboard -> Right. Добавьте действие Code и напишите следующий код:

// Движение вправо
x += 4;

Этот код прибавляет 4 к координате x игрока при каждом нажатии правой стрелки. Аналогично добавьте события для остальных стрелок:

  • Влево: KeyDown -> Left -> x -= 4;
  • Вверх: KeyDown -> Up -> y -= 4;
  • Вниз: KeyDown -> Down -> y += 4;

Обработка коллизий и фиксация вращения

Добавьте событие Collision для объекта Player. В данном событии пропишите любой код, например комментарий:

// Проверка коллизий

Это предотвратит прохождение игрока сквозь стены.

Добавьте событие Create для объекта Player и используйте функцию physics_fixture_set_rotation(false), чтобы зафиксировать вращение игрока:

physics_fixture_set_rotation(false);

Это предотвратит вращение игрока при столкновении с препятствиями.

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

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