Начало работы: комнаты (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);
Это предотвратит вращение игрока при столкновении с препятствиями.
В этом уроке мы создали базовую игру с возможностью перемещения игрока и взаимодействием с препятствиями. В следующих уроках мы добавим графику, улучшим физику и добавим новые функции.