{
if (room != room_last)
{
room_goto_next();
}
else
{
game_end();
}
}
Следующие переменные и функции имеют отношение к комнатам.
room Cодержит индекс текущей комнаты, но Вы лучше используйте подпрограммы ниже.
room_first* Содержит индекс первой комнаты в игре.
room_last* Содержит индекс последней комнаты в игре.
room_goto(numb) Совершает переход в комнату с идентификатором numb.
room_goto_previous() Совершает переход в предыдущую комнату.
room_goto_next() Совершает переход в следующую комнату.
room_restart() Перезапускает текущую комнату.
room_previous(numb) Возвращает индекс предыдущей комнаты (-1 = ничего), но не совершает переход в неё.
room_next(numb) Возвращает индекс следующей комнаты (-1 = ничего), но не совершает переход в неё.
game_end() Завершает игру. (Точнее, игра заканчивается после того, как сценарий был выполнен, не в течении его выполнения).
game_restart() Перезапускает игру. (Точнее, игра перезапускается после того, как сценарий был выполнен, не в течении его выполнения.)
Комнаты имеют множество дополнительных свойств:
room_width* Содержит ширину комнаты в пикселях.
room_height* Содержит высоту комнаты в пикселях.
room_caption Содержит строку, которая будет выводиться в заголовке окна игры.
room_persistent Определяет, является ли комната постоянной.
Многожество игр предлагают играющему возможность сохранять и/или загружать игру. В Game Maker это происходит автоматически, когда пользователь нажимает <F5> для сохранения и <F6> для загрузки. Вы можете также сохранять и загружать игры из части кода (отметьте, что загрузка будет происходить только в конце текущего шага).
game_save(string) Cохраняет игру в файл с именем string.
game_load(string) Загружает игру из файла с именем string.
Пожалуйста, поймите, что сохраняются только основные данные игры. Если, например, проигрывается определённый отрезок музыки, то точная его позиция не сохраняется. Также не сохраняются изменённые ресурсы. Не сохраняются и такие вещи как: дата-структуры, частицы и установки многопользовательской игры.
Когда Вы перемещаетесь от одной комнаты к другой, Вы можете выбрать переход. Чтобы установить переход, Вы должны использовать переменную transition_kind. Если Вы устанавливаете значение большее чем 0, то будет использоваться соответствующий переход. Оно затрагивает только следующий переход, после чего значение сбрасывается на 0, который не указывает никакого перехода.
transition_kind устанавливает переход между комнатами. Вы можете использовать следующие встроенные значения
0 = no effect (нет эффекта)transition_steps указывает число шагов в переходе. Больше шагов - дольше переход. По умолчанию 80.
1 = Create from left (появление слева на право)
2 = Create from right (появление справа на лево)
3 = Create from top (появление сверху вниз)
4 = Create from bottom (появление снизу вверх)
5 = Create from center (появление из центра)
6 = Shift from left (выдвиг слева на прово)
7 = Shift from right (выдвиг справа на лево)
8 = Shift from top (выдвиг сверху вниз)
9 = Shift from bottom (выдвиг снизу вверх)
10 = Interlaced from left (чередующееся появление слева на право)
11 = Interlaced from right (чередующееся появление справа на лево)
12 = Interlaced from top (чередующееся появление сверху вниз)
13 = Interlaced from bottom (чередующееся появление снизу вверх)
14 = Push from left (сдвиг слева на прово)
15 = Push from right (сдвиг справа на лево)
16 = Push from top (сдвиг сверху вниз)
17 = Push from bottom (сдвиг снизу вверх)
18 = Rotate to the left (появление из центра с вращением против часовой)
19 = Rotate to the right (появление из центра с вращением по часовой)
20 = Blend the rooms (плавное проявление)
21 = Fade out and in (исчезание и появление)
transition_define(kind,name) с помощью этой функции вы можете создавать ваши собственные переходы. Для этого Вы должны определить скрипт (возможно в пакете расширения), чтобы сделать переход. С этой функцией Вы сможете добавить переход в систему. kind - это индекс перехода (или нового или существующего перехода). name - это название скрипта. Обратите внимание, что название скрипта - строка! Поэтому, оно должно заключаться в кавычки. Скрипт должен содержать пять параметров: изображение предыдущей комнаты, изображение следующей комнаты, ширина изображения, высота изображения и доля перехода (между 0 и 1). Этого хватит для рисования изображения, используя эти две поверхности.
transition_exists(kind) эта функция проверяет, существует ли переход такого вида.
Пожалуйста, обратите внимание, что переходы не работают при использовании 3D графики. Также, переходы работают неправильно, когда размеры комнат не одинаковые.