Объект Scene

Объект Scene представляет собой загруженную в настоящий момент сцену. Всегда существует один и только один объект Scene, к которому можно получить доступ посредством атрибута Game.Scene. Для совместимости этот объект также автоматически сохраняется в глобальной переменной Scene.


Методы

Манипулирование объектами
LoadActor Загружает персонаж из файла.
LoadActor3D Загружает 3D-персонаж из файла.
LoadEntity Загружает объект сцены (entity) из файла.
UnloadObject Удаляет объект из памяти.
Функции прокрутки
SkipTo Задаёт текущую позицию прокрутки сцены в указанной точке / объекте.
ScrollTo Прокручивает сцену до указанной точки / объекта.
Сбор информации об узлах сцены
GetLayer Возвращает слой в качестве объекта.
GetWaypointGroup Возвращает группу точек нахождения пути в качестве объекта.
GetNode Возвращает узел сцены (объект сцены (entity) или регион).
GetFreeNode Возвращает свободный узел сцены (объект сцены (entity) или персонаж).
GetRegionAt Возвращает регион сцены.
Сбор информации о сцене
IsBlockedAt Выясняет, является ли сцена заблокированной (непроходимой) в указанной точке.
IsWalkableAt Выясняет, является ли сцена проходимой в указанной точке.
GetScaleAt Возвращает уровень масштабирования в указанной точке.
GetRotationAt Возвращает фактор вращения спрайтов в указанной точке.
IsPointInViewport Выясняет, находится ли указанная точка в области отображения сцены.
Эффект затуманивания
FadeOut Затуманивает сцену указанным цветом.
FadeIn Прояснивает (туман рассеивается) сцену из заданного цвета.
GetFadeColor Возвращает текущий цвет тумана.
Динамическое создание объектов
CreateEntity Создаёт новый объект сцены (entity).
DeleteEntity Удаляет объект сцены (entity).
AddLayer Создаёт новый слой (самый верхний).
InsertLayer Вставляет новый слой в сцену.
DeleteLayer Удаляет слой сцены.
3D-функции
EnableNode3D Включает проходимую область или блок-объект.
DisableNode3D Отключает проходимую область или блок-объект.
IsNode3DEnabled Выясняет, включён ли указанный проходимый регион или блок-объект.
EnableLight Включает источник света.
DisableLight Отключает источник света.
IsLightEnabled Выясняет, включён ли указанный источник света.
SetLightColor Изменяет цвет источника света.
GetLightColor Возвращает цвет источника света.
GetLightName Возвращает имя источника света.
SetActiveCamera Переключает камеру, которая будет использоваться для отображения 3D-объектов в сцене.
EnableFog Включает линейный туман, который имеет эффект на 3D-персонажах.
DisableFog Отключает туман.
Разные функции
SetViewport Задаёт область отображения сцены.

Атрибуты

Type (только для чтения) Всегда возвращает "scene".
Name Внутреннее имя сцены.
Filename (только для чтения) Возвращает имя файла сцены.
Ready (только для чтения) Возвращает true, если сцена находится в состоянии готовности (скроллинг закончен).
NumLayers (только для чтения) Возвращает количество слоёв.
NumWaypointGroups (только для чтения) Возвращает количество групп точек нахождения пути.
MouseX (только для чтения) Возвращает координату X текущей позиции курсора мыши внутри сцены.
MouseY (только для чтения) Возвращает координату Y текущей позиции курсора мыши внутри сцены.
MainLayer (только для чтения) Возвращает ссылку на основной (главный) слой сцены.
AutoScroll Указывает, должна ли сцена автоматически прокручиваться до объекта Game.MainObject
IsScrolling (только для чтения) Возвращает true, если сцена в настоящий момент прокручивается.
PersistentState Указывает, должен ли движок "запоминать" предыдущие состояния узлов сцены, когда пользователь повторно посещает её.
ScrollSpeedX Горизонтальная скорость прокрутки (в мс, по умолчанию = 10).
ScrollSpeedY Вертикальная скорость прокрутки (в мс, по умолчанию = 10).
ScrollPixelsX Горизонтальное смещение при прокрутке (в пикселях, по умолчанию = 1).
ScrollPixelsY Вертикальное смещение при прокрутке (в пикселях, по умолчанию = 1).
OffsetX Текущее горизонтальное смещение сцены (до какой позиции она прокручена).
OffsetY Текущее вертикальное смещение сцены.
Width Ширина главного слоя сцены.
Height Высота главного слоя сцены.
NumFreeNodes (только для чтения) Количество свободных узлов сцены.
GeometryFile (только для чтения) Имя файла геометрии, привязанного к сцене, или null, если такового не имеется.
ShowGeometry Указывает, нужно ли отображать геометрию сцены (для отладочных целей)
MaxShadowType Максимальный уровень детализации теней в сцене (0..нет (none), 1..простая (simple), 2..плоская (flat), 3..шаблонная (stencil))
AmbientLightColor Цвет охватывающего сцену света (влияет на 3D-персонажей).
NumLights (только для чтения) Количество источников света, заданных геометрией сцены.

Низкоуровневые события

SceneShutdown Генерируется в момент перед выгрузкой сцены из памяти. Обработчик этого события не должен содержать никаких блокирующих команд, вроде Sleep(), GoTo() и т. д.

LoadActor(Filename)

Загружает персонаж из файла.

Параметры

Filename
Имя файла описания персонажа для загрузки.

Возвращаемое значение

Ссылка на объект Actor. Если метод не сможет создать объект, он вернёт значение null.

Примечания

Персонажи, загруженные с помощью данного метода, будут автоматически выгружаться при смене сцены (в отличие от метода Game.LoadActor).


LoadActor3D(Filename)

Загружает 3D-персонаж из файла.

Параметры

Filename
Имя файла описания 3D-персонажа для загрузки.

Возвращаемое значение

Ссылка на объект 3D actor. Если метод не сможет создать объект, он вернёт значение null.

Примечания

Персонажи, загруженные с помощью данного метода, будут автоматически выгружаться при смене сцены (в отличие от метода Game.LoadActor3D).


LoadEntity(Filename)

Загружает объект сцены (entity) из файла.

Параметры

Filename
Имя файла описания объекта сцены для загрузки.

Возвращаемое значение

Ссылка на объект Entity. Если метод не сможет создать объект, он вернёт значение null.

Примечания

Объекты сцены, загруженные с помощью данного метода, будут автоматически выгружаться при смене сцены (в отличие от метода Game.LoadEntity).


UnloadObject(Object)

Удаляет объект из памяти.

Параметры

Object
Объект для удаления.

Примечания

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


SkipTo(X, Y)
SkipTo(Object)

Задаёт текущую позицию прокрутки сцены в указанной точке / объекте.

Параметры

X
Координата X для новой позиции.
Y
Координата Y для новой позиции.
Object
Объект (actor/entity), используемый в качестве новой позиции для прокрутки.

ScrollTo(X, Y)
ScrollTo(Object)

Прокручивает сцену до указанной точки / объекта.

Параметры

X
Координата X позиции, до которой нужно осуществить прокрутку.
Y
Координата Y позиции, до которой нужно осуществить прокрутку.
Object
Объект (actor/entity), до которого нужно осуществить прокрутку сцены (чтобы он попал "в кадр").

Примечания

Чтобы данный метод работал, атрибут Scene.AutoScroll должен быть установлен в true.


GetLayer(LayerIndex)
GetLayer(LayerName)

Возвращает слой в качестве объекта.

Параметры

LayerIndex
Индекс слоя, который нужно вернуть в качестве объекта.
LayerName
Имя слоя.

Возвращаемое значение

Ссылка на объект layer с указанным индексом/именем или null, если указанный слой не существует.


GetWaypointGroup(WptGroupIndex)

Возвращает группу точек нахождения пути в качестве объекта.

Параметры

WptGroupIndex
Индекс группы точек.

Возвращаемое значение

Ссылка на объект группы точек с заданным индексом или null, если указанная группа не существует.


GetNode(Name)

Возвращает узел сцены (объект сцены (entity) или регион).

Параметры

Name
Имя узла.

Возвращаемое значение

Ссылка на объект узла сцены или null, если указанный узел не существует.

Примечания

Чтобы данный метод работал корректно, каждый узел сцены должен иметь уникальное имя.


GetFreeNode(Name)
GetFreeNode(Index)

Возвращает свободный узел сцены (объект сцены (entity) или персонаж).

Параметры

Name
Имя узла.
Index
Индекс узла.

Возвращаемое значение

Ссылка на объект узла сцены или null, если указанный узел не существует.


GetRegionAt(X, Y, IncludeDecorations)

Возвращает регион сцены.

Параметры

X
Координата X внутри сцены для поиска региона.
Y
Координата Y внутри сцены для поиска региона.
IncludeDecorations
Указывает, следует ли также просматривать регионы декораций (необязательный параметр, по умолчанию = false)

Возвращаемое значение

Ссылка на объект региона или null, если указанный регион не существует.


IsBlockedAt(X, Y)

Выясняет, является ли сцена заблокированной (непроходимой) в указанной точке.

Параметры

X
Координата X.
Y
Координата Y.

Возвращаемое значение

true, если сцена заблокирована в указанной точке.


IsWalkableAt(X, Y)

Выясняет, является ли сцена проходимой в указанной точке.

Параметры

X
Координата X.
Y
Координата Y.

Возвращаемое значение

true, если сцена проходима в указанной точке.


GetScaleAt(X, Y)

Возвращает уровень масштабирования в указанной точке.

Параметры

X
Координата X.
Y
Координата Y.

Возвращаемое значение

Уровень масштабирования в процентах.


GetRotationAt(X, Y)

Возвращает фактор вращения спрайтов в указанной точке.

Параметры

X
Координата X.
Y
Координата Y.

Возвращаемое значение

Фактор вращения спрайтов в градусах.


IsPointInViewport(X, Y)

Выясняет, находится ли указанная точка в области отображения сцены.

Параметры

X
Координата X.
Y
Координата Y.

Возвращаемое значение

true, если указанная точка находится в области отображения сцены.


FadeOut(Duration, TargetRed, TargetGreen, TargetBlue, TargetAlpha)
FadeOutAsync(Duration, TargetRed, TargetGreen, TargetBlue, TargetAlpha)

Затуманивает сцену указанным цветом.

Параметры

Duration
Указывает, как долго будет длиться процесс затуманивания, в мс (необязательный параметр, по умолчанию = 500).
TargetRed
Красная составляющая цвета тумана (необязательный параметр, по умолчанию = 0)
TargetGreen
Зелёная составляющая цвета тумана (необязательный параметр, по умолчанию = 0)
TargetBlue
Синяя составляющая цвета тумана (необязательный параметр, по умолчанию = 0)
TargetAlpha
Альфа-составляющая (прозрачность) цвета тумана (необязательный параметр, по умолчанию = 255)

Примечания

Метод FadeOut блокирует выполнение сценария до тех пор, пока процесс затуманивания не будет завершён, метод FadeOutAsync работает параллельно со сценарием.


FadeIn(Duration, SourceRed, SourceGreen, SourceBlue, SourceAlpha)
FadeInAsync(Duration, SourceRed, SourceGreen, SourceBlue, SourceAlpha)

Прояснивает (туман рассеивается) сцену из заданного цвета.

Параметры

Duration
Указывает, как долго будет длиться данный процесс, в мс (необязательный параметр, по умолчанию = 500).
TargetRed
Красная составляющая цвета тумана (необязательный параметр, по умолчанию = 0).
TargetGreen
Зелёная составляющая цвета тумана (необязательный параметр, по умолчанию = 0).
TargetBlue
Синяя составляющая цвета тумана (необязательный параметр, по умолчанию = 0).
TargetAlpha
Альфа-составляющая (прозрачность) цвета тумана (необязательный параметр, по умолчанию = 255).

Примечания

Метод FadeIn блокирует выполнение сценария до тех пор, пока процесс прояснивания не будет завершён, метод FadeInAsync работает параллельно со сценарием.


GetFadeColor()

Возвращает текущий цвет тумана.

Возвращаемое значение

Цвет тумана в цветовом числовом формате (RGB).

Примечания

Вы можете использовать методы GetRValue(), GetGValue(), GetBValue() и GetAValue() для получения конкретных составляющих цвета.


CreateEntity(Name)

Создаёт новый объект сцены (entity).

Параметры

Name
Имя объекта (необязательный параметр)

Возвращаемое значение

Ссылка на вновь созданный объект.


DeleteEntity(Entity)

Удаляет объект сцены (entity).

Параметры

Entity
Имя удаляемого объекта.

AddLayer(LayerName)

Создаёт новый слой (самый верхний).

Параметры

LayerName
Имя слоя.

Возвращаемое значение

Ссылка на созданный объект layer.


InsertLayer(Index, LayerName)

Вставляет новый слой в сцену.

Параметры

Index
Позиция (номер) между слоями, с которой нужно вставить новый слой.
LayerName
Имя слоя.

Возвращаемое значение

Ссылка на созданный объект layer.


DeleteLayer(LayerIndex)
DeleteLayer(LayerObject)

Удаляет слой сцены.

Параметры

LayerIndex
Индекс слоя.
LayerObject
Объект layer.

Возвращаемое значение

true, если удаление было успешно выполнено.


EnableNode3D(NodeName)

Включает проходимую область или блок-объект.

Параметры

NodeName
Имя узла, который требуется включить.

Возвращаемое значение

true, если узел был успешно включён.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


DisableNode3D(NodeName)

Отключает проходимую область или блок-объект.

Параметры

NodeName
Имя узла, который требуется отключить.

Возвращаемое значение

true, если узел был успешно отключён.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


IsNode3DEnabled(NodeName)

Выясняет, включён ли указанный проходимый регион или блок-объект.

Параметры

NodeName
Имя узла.

Возвращаемое значение

true, если указанный узел включён.


EnableLight(LightName)

Включает источник света.

Параметры

LightName
Имя источника света.

Возвращаемое значение

true в случае успеха.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


DisableLight(LightName)

Отключает источник света.

Параметры

LightName
Имя источника света.

Возвращаемое значение

true в случае успеха.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


IsLightEnabled(LightName)

Выясняет, включён ли указанный источник света.

Параметры

LightName
Имя источника света.

Возвращаемое значение

true если указанный источник света существует и включён (доступен).


SetLightColor(LightName, Color)

Изменяет цвет источника света.

Параметры

LightName
Имя источника света.
Color
Цвет в формате RGB.

Возвращаемое значение

true в случае успеха.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


GetLightColor(LightName)

Возвращает цвет источника света.

Параметры

LightName
Имя источника света.

Возвращаемое значение

Цвет источника в формате RGB.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии. Вы можете использовать методы GetRValue(), GetGValue(), GetBValue() и GetAValue() для получения конкретных составляющих цвета.


GetLightName(LightIndex)

Возвращает имя источника света.

Параметры

LightIndex
Индекс источника света.

Возвращаемое значение

Имя источника света с указанным индексом или null, если источник с таким индексом не существует.

Примечания

Вы можете использовать цикл от 0 до Scene.NumLights - 1, чтобы получить имена всех существующих источников света в сцене.


SetActiveCamera(CameraName)

Переключает камеру, которая будет использоваться для отображения 3D-объектов в сцене.

Параметры

CameraName
Имя камеры.

Возвращаемое значение

true в случае успеха.

Примечания

Для работы данного метода требуется наличие привязанного к сцене файла 3D-геометрии.


EnableFog(Color, Start, End)

Включает линейный туман, который имеет эффект на 3D-персонажах.

Параметры

Color
Цвет тумана.
Start
Начальное значение области тумана (в единицах геометрии сцены).
End
Конечное значение области тумана (в единицах геометрии сцены).

Примечания

Используйте функцию MakeRGBA() для приведения значений цвета к формату RGB.


DisableFog()

Отключает туман.


SetViewport(X, Y, Width, Height)

Задаёт область отображения сцены.

Параметры

X
Координата X области отображения.
Y
Координата Y области отображения.
Width
Ширина области отображения.
Height
Высота области отображения.

Примечания

Этот метод влияет только на текущую сцену (в отличие от метода Game.SetSceneViewport). Вызвав этот метод без параметров, Вы можете задать область отображения на полный экран.