Виды (Views) в GML
Как Вы должно быть знаете, можно определить до восьми различных видов (отображений) при проектировании комнат. Таким образом Вы можете показывать разные части комнаты в различных местах на экране. Также, Вы можете быть уверены, что специфический объект всегда останется видимым. Вы можете управлять видами из кода. Вы можете сделать представления видимыми или невидимыми, и изменять место или размер представления относительно экрана или позицию представления в комнате (что бывает полезным, в частности, когда Вы не указываете никакого видимого объекта), Вы можете изменить размер горизонтальной и вертикальной границы вокруг видимого объекта, и Вы можете указать, какой объект должен остаться видимым в представлении. Последнее очень важно, когда в течение игры изменяются основные объекты. Например, Вы можете изменять объект главного персонажа, основываясь на его текущем состоянии. К сожалению, сее означает, что объект больше не должен оставаться видимым. Это может быть исправлено одной строкой кода в событии создания всех возможных основных объектов (предполагается, что это должно произойти в первом виде):
{
view_object[0] = object_index;
}
Существуют следующие переменные, которые влияют на вид (отображение). Все, кроме первых двух - массивы с диапазоном от 0 (первый вид) до 7 (последний вид).
view_enabled - Допускается отображение или нет.
view_current* - Рисуемый в настоящее время вид (0-7). Используй это только в событии рисования. Вы можете, например, установить эту переменную, чтобы рисовать некоторые вещи только в одном виде. Переменная не может быть изменена.
view_visible[0..7] - Является ли определенное отображение видимым на экране.
view_left[0..7] - Левая позиция отображения в комнате.
view_top[0..7] - Верхняя позиция отображения в комнате.
view_width[0..7] - Ширина отображения (в пикселах).
view_height[0..7] - Высота отображения (в пикселах).
view_x[0..7] - X-позиция отображения на экране.
view_y[0..7] - Y-позиция отображения на экране.
view_hborder[0..7] - Размер горизонтальной границы вокруг видимого объекта (в пикселах).
view_vborder[0..7] - Размер вертикальной границы вокруг видимого объекта (в пикселах).
view_hspeed[0..7] - Максимальная горизонтальная скорость отображения.
view_vspeed[0..7] - Максимальная вертикальная скорость отображения.
view_object[0..7] - Объект, чей образец должен остаться видимым при отображении.
Обратите внимание, что размер изображения на экране определяется на основании видимых представлениях в начале комнаты. Если Вы изменяете виды в течение игры, они больше не смогут быть адаптированы на экране. Размер экрана не адаптируется автоматически. Поэтому, если Вам понадобится это, Вы должны будете сделать сее самостоятельно, используя следующие переменные:
screen_width - Ширина изображения на экране, то есть та область, в которой мы рисуем. Когда нет никаких видов, она будет тем же самым что и room_width.
screen_height - Высота изображения на экране.