room_get_info

此函数从存储中获取有关房间的信息并将其作为 结构 返回。您可以选择通过给定的可选参数排除信息。

注意 该函数不能用于获取活动房间 (当前 房间 或已访问的 持久 房间) 的当前状态。在这种情况下,它返回房间的原始状态。

该房间之前必须已使用 资产浏览器 创建或使用 room_add 在游戏中添加。

返回的 struct 的格式如下:

room_info_struct = 
{
    instances: 
    [
        {/* Instance Info Struct */},
        {/* Instance Info Struct */},
    ],
    layers:
    [
        {
            elements:
            [
                {/* Layer Element Info Struct */},
                {
                    /* Example */
                    type: layerelementtype_tilemap,
                    tiles: [/* Tile Map Data */]
                }
            ]
        },
    ],
    views:
    [
        {/* View Info Struct */},
    ]
}

下表列出了返回的结构中可以包含的所有可能的结构:

房间信息 房间信息

这是函数返回的主要结构。下面列出的所有变量都存在于该返回结构的根部:

Room Info Struct
变量名数据类型描述
widthReal房间的宽度
heightReal房间的高度
creationCodeScript Function包含该房间创建代码的脚本函数的索引
physicsWorldBoolean房间是否有 物理世界
physicsGravityXReal物理世界沿 x 轴的重力分量
physicsGravityYReal物理世界沿 y 轴的重力分量
physicsPixToMetersReal物理世界的像素到米尺度
persistentBoolean房间是否持久
enableViewsBoolean房间是否开启视图
clearDisplayBufferBoolean绘制房间之前是否清除显示缓冲区
clearViewportBackgroundBoolean是否在绘制视口之前清除视口的背景
colourColourclearDisplayBuffer 设置为 true 时使用的透明颜色
instancesArray of Room Instance Info Struct一个数组,列出放置在房间中的所有实例及其基本信息
layersArray of Room Layer Info Struct列出所有房间层的数组,按深度递增的顺序
viewsArray of Room View Info Struct列出所有视图的数组,按视图索引排序

实例信息 实例信息

这种类型的结构代表房间中的一个实例。

这些结构可在 instances 数组中找到,该数组是函数返回的主结构的一部分。

Instance Info Struct
变量名数据类型描述
idObject Instance实例 ID
object_indexString这是其实例的对象的名称 (使用 asset_get_index 获取实际对象)
xReal实例位置的 x 坐标
yReal实例位置的 y 坐标
xscaleReal实例的 x 比例
yscaleReal实例的 y 比例
angleReal实例的旋转角度
image_indexReal实例使用的图像索引
image_speedReal实例的图像速度
colourColour用于绘制实例的混合颜色
creation_codeScript Function包含实例创建代码的脚本函数的索引
pre_creation_codeScript Function包含实例预创建代码的脚本函数的索引

层信息 层信息

这种类型的结构代表房间中的一层。

这些结构可在 layers 数组中找到,该数组是函数返回的主结构的一部分。

Layer Info Struct
变量名数据类型描述
idReal层 ID
nameString图层名称
visibleBoolean图层是否可见
depthReal图层深度
xoffsetReal图层的 x 偏移量
yoffsetReal图层的 y 偏移量
hspeedReal层的水平速度
vspeedReal层的垂直速度
effectEnabledBoolean当前是否启用图层滤镜 / 效果
effectToBeEnabledBoolean是否应在下一帧中启用 / 禁用图层滤镜 / 效果 (effectEnabled 的下一个值)
effectFX Struct包含效果参数的结构 (如果未设置图层效果,则为 -1)
shaderIDShader Asset要应用于图层的着色器 (layer_shader)
elementsArray of Room Layer Element Info Struct列出图层上所有元素的数组。每个元素类型结构都包含特定于它的信息。

视图信息 视图信息

这种类型的结构代表房间中的一个视图。

这些结构可在 views 数组中找到,该数组是函数返回的主结构的一部分。

View Info Struct
变量名数据类型描述
visibleBoolean视图是否可见
cameraIDCamera ID分配给该视图的摄像机
xviewReal视图相机位置的 x 坐标
yviewReal视图相机位置的 y 坐标
wviewReal视图相机的宽度
hviewReal视图相机的高度
hspeedReal视图的水平移动速度
vspeedReal视图的垂直移动速度
xportReal屏幕上绘制视图的 x 位置
yportReal屏幕上绘制视图的 y 位置
wportReal视口的宽度
hportReal视口的高度
objectObject Asset摄像机应跟踪房间中第一个实例的对象
hborderReal要跟随的对象实例周围的水平边框
vborderReal要跟随的对象实例周围的垂直边框

层元素信息 层元素信息

这种类型的结构代表一层中的一个元素。

这些结构可以在 elements 数组中找到,该数组是层结构的一部分。

层元素信息结构
变量名数据类型描述
所有元素类型
idReal元素的唯一 ID
typeLayer Element Type Constant元素类型
背景元素类型
sprite_indexSprite Asset背景使用的精灵
image_indexReal精灵的子图像
xscaleReal沿 x 轴的比例
yscaleReal沿 y 轴的比例
htiledBoolean背景图片是否水平平铺
vtiledBoolean背景图片是否垂直平铺
stretchBoolean是否拉伸背景,使其充满整个房间
visibleBoolean背景是否可见
blendColourColour用于绘制背景的混合颜色
blendAlphaReal要使用的 0 到 1 之间的 alpha 值
image_speedReal背景图像速度
speed_typeSprite Speed Constant表示 image_speed 的单位,spritespeed_framespersecondspritespeed_framespergameframe
nameString背景名称
实例元素类型
inst_idObject Instance实例 ID
精灵元素类型
sprite_indexSprite Asset该精灵元素的精灵索引
image_indexReal精灵的子图像
xReal精灵位置的 x 坐标
yReal精灵位置的 y 坐标
image_xscaleReal图像沿 x 轴的比例
image_yscaleReal图像沿 y 轴的比例
image_angleReal图像角度
image_alphaReal0 到 1 之间的 alpha 值
image_blendColour混合颜色
image_speedReal图像的动画速度,以 speed_type 单位表示
speed_typeSprite Speed Constant表示 image_speed 的单位,spritespeed_framespersecondspritespeed_framespergameframe
nameString房间编辑器 中给定的 sprite 元素的名称 (默认为 graphic_*)
平铺地图元素类型
xReal房间中图块地图的 x 位置 (或偏移量)
yReal房间中图块地图的 y 位置 (或偏移量)
tileset_indexTile Set Asset该图块地图使用的图块集
data_maskReal瓦片地图的位掩码值
tilesArray of Real仅当 tilemap_data 参数设置为 true 时,此变量才会出现。它是一个一维数组,包含所有瓦片地图数据,逐行列出。
widthReal平铺地图单元格的宽度
heightReal平铺地图单元格的高度
nameString瓦片地图的名称
粒子系统元素类型
psParticle System Asset粒子系统
xReal粒子系统位置的 x 坐标
yReal粒子系统位置的 y 坐标
angleReal粒子系统旋转的角度
xscaleReal粒子系统沿 x 轴的尺度
yscaleReal粒子系统沿 y 轴的尺度
blendColour用于绘制粒子系统的混合颜色
alphaReal要使用的 0 到 1 之间的 alpha 值
nameString房间编辑器 中定义的粒子系统元素的名称 (默认为 article_*)
平铺元素类型
visibleBoolean磁贴是否可见
sprite_indexSprite Asset该图块所在的精灵
xReal瓦片位置的 x 坐标
yReal瓦片位置的 y 坐标
widthReal瓷砖的宽度
heightReal瓷砖的高度
image_xscaleReal沿图块 x 轴的比例因子
image_yscaleReal沿图块 y 轴的比例因子
image_angleReal瓷砖的角度
image_blendColour用于绘制瓷砖的混合色
image_alphaReal要使用的 alpha
xoReal所述 x 偏移
yoRealy 偏移
序列元素类型
xReal序列位置的 x 坐标
yReal序列位置的 y 坐标
image_xscaleReal整个序列沿 x 轴的沿着比例
image_yscaleReal沿整个序列 y 轴的沿着比例
image_angleReal序列旋转的角度
image_alphaReal要使用的 0 到 1 之间的 alpha 值
image_blendColour用于绘制序列的混合色
image_speedReal序列的动画速度,以 speed_type 单位表示
speedTypeSprite Speed Constant表示 image_speed 的单位,spritespeed_framespersecondspritespeed_framespergameframe
seq_idSequence Asset序列资产
nameString房间编辑器 中定义的序列元素的名称 (默认为 graphic_*)
head_positionReal序列的播放头位置

 

语法:

room_get_info(room, [views], [instances], [layers], [layer_elements], [tilemap_data]);

参数类型描述
roomRoom Asset获取信息的房间
viewsBoolean可选 是否在结构中包含视图信息 (默认为 true)
instancesBoolean可选 是否在结构中包含实例信息 (默认为 true)
layersBoolean可选 是否在结构中包含层信息 (默认为 true)
layer_elementsBoolean可选 是否在结构中包含图层元素信息 (默认为 true,要求将图层设置为 true)
tilemap_dataBoolean可选 是否在结构中包含图块地图数据 (默认为 true,需要将 layerslayer_elements 设置为 true)

 

返回:

Room Info Struct

 

例子:

var _info = room_get_info(Room1);
var _info_json = json_stringify(_info, true);
show_debug_message(_info_json);

上面的代码获取房间 Room1 的信息,使用 json_stringify 将返回的结构体转换为 JSON 字符串,然后将其输出到调试消息中。所有视图、实例、图层、图层元素和图块地图信息都包含在输出中。