Виды

Как Вы уже должны знать, Вы можете определить вплоть до восьми разных видов при проектировании комнат. Вид определяется своей областью в комнате и переносом на экране (точнее, рисуемой области в пределах окна). Таким образом, Вы можете показать другие части комнаты в других местах экрана. Также, Вы можете убедиться, что конкретный объект всегда остаётся видимым.

Вы можете управлять видами из кода. Вы можете сделать виды видимыми и невидимыми, и изменять место или размер видов на экране или позицию вида в комнате (что в целом - полезно, когда Вы не указываете видимым никакой объект). Вы можете изменить размер горизонтальной и вертикальной границы вокруг видимого объекта, и Вы можете указать, какой объект должен остаться видимым. Очень важно, когда главный объект изменяется в течение игры. Например, Вы можете изменить основной персонаж, основанный на своём текущем статусе. К несчастью, это означает, что он - больше не объект, который должен остаться видимым. Это может быть исправлено одной строкой текста программы в событии создания всех возможных основных объектов (предположим, это должно случиться в первом виде):

{
  view_object[0] = object_index;
}

Существуют следующие переменные, которые влияют на вид. Все, за исключением двух первых - подготавливает диапазон от 0 (первый вид) до 7 (последний вид).

view_enabled Отражает, использовать виды или нет.
view_current* Отражает индекс (число от 0 до 7) текущего вида. Используйте это только в событии рисования. Вы можете, например, проверить эту переменную, чтобы сделать определённые вещи только в одном виде. Переменная не может быть изменена.
view_visible[0..7] Отражает активный вид с указанным индексом или нет.

view_xview[0..7] Позиция X вида в комнате.
view_yview[0..7] Позиция Y вида в комнате.
view_wview[0..7] Ширина вида в комнате.
view_hview[0..7] Высота вида в комнате.
view_xport[0..7] Позиция X переноса вида в рисуемой области.
view_yport[0..7] Позиция Y переноса вида в рисуемой области.
view_wport[0..7] Ширина видового переноса в рисуемой области.
view_hport[0..7] Высота видового переноса в рисуемой области.
view_angle[0..7] Угол вращения, используемый для вида в комнате (против часовой стрелки в градусах).
view_hborder[0..7] Размер горизонтальной границы вокруг видимого объекта (в пикселях).
view_vborder[0..7] Размер вертикальной границы вокруг видимого объекта (в пикселях).
view_hspeed[0..7] Максимальная горизонтальная скорость вида.
view_vspeed[0..7] Максимальная вертикальная скорость вида.
view_object[0..7] Объект, чей образец должен остаться видим в поле зрения. Если существуют несколько образцов этого объекта, то сопровождается только первый. Вы можете также назначить идентификатор образца в эту переменную. В этом случае - сопровождается указанный образец.

Отметьте, что размер изображения на экране основан в видимых видах в начале комнаты. Если Вы изменяете виды в течение игры, то они не могут больше поместиться на экране. Размер экрана всё же автоматически не приспосабливается. Если Вам это нужно, то Вы должны сделать это сами, используя следующие переменные:

window_set_region_size(w,h,adaptwindow) Устанавливает ширину и высоту рисуемой области в окне. adaptwindow - указывает, должен ли размер окна быть приспособлен, если область не установлена. Размер окна всегда будет приспособлен, если Вы используете фиксированное масштабирование. (Смотрите функцию window_set_region_scale().)
window_get_region_width() Возвращает текущую ширину рисуемой области.
window_get_region_height() Возвращает текущую высоту рисуемой области.

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

window_view_mouse_get_x(id) Возвращает x-координату мыши, что касается вида с индексом Возвращает x-координату мыши, что касается вида с индексом id.
window_view_mouse_get_y(id) Возвращает x-координату мыши, что касается вида с индексом id.
window_view_mouse_set(id,x,y) Возвращает y-координату мыши, что касается вида с индексом id.
window_views_mouse_get_x() Возвращает x-координату мыши, что касается вида (также, как mouse_x).
window_views_mouse_get_y() Возвращает y-координату мыши, что касается вида (также, как mouse_y).
window_views_mouse_set(x,y) Устанавливает позицию мыши, что касается первого вида, который видимый.