此函数从存储中获取有关房间的信息并将其作为 结构 返回。您可以选择通过给定的可选参数排除信息。
注意 该函数不能用于获取活动房间 (当前 房间 或已访问的 持久 房间) 的当前状态。在这种情况下,它返回房间的原始状态。
该房间之前必须已使用 资产浏览器 创建或使用 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 */},
]
}
下表列出了返回的结构中可以包含的所有可能的结构:
这是函数返回的主要结构。下面列出的所有变量都存在于该返回结构的根部:
变量名 | 数据类型 | 描述 |
---|---|---|
width | Real | 房间的宽度 |
height | Real | 房间的高度 |
creationCode | Script Function | 包含该房间创建代码的脚本函数的索引 |
physicsWorld | Boolean | 房间是否有 物理世界 |
physicsGravityX | Real | 物理世界沿 x 轴的重力分量 |
physicsGravityY | Real | 物理世界沿 y 轴的重力分量 |
physicsPixToMeters | Real | 物理世界的像素到米尺度 |
persistent | Boolean | 房间是否持久 |
enableViews | Boolean | 房间是否开启视图 |
clearDisplayBuffer | Boolean | 绘制房间之前是否清除显示缓冲区 |
clearViewportBackground | Boolean | 是否在绘制视口之前清除视口的背景 |
colour | Colour | clearDisplayBuffer 设置为 true 时使用的透明颜色 |
instances | Array of Room Instance Info Struct | 一个数组,列出放置在房间中的所有实例及其基本信息 |
layers | Array of Room Layer Info Struct | 列出所有房间层的数组,按深度递增的顺序 |
views | Array of Room View Info Struct | 列出所有视图的数组,按视图索引排序 |
这种类型的结构代表房间中的一个实例。
这些结构可在 instances 数组中找到,该数组是函数返回的主结构的一部分。
变量名 | 数据类型 | 描述 |
---|---|---|
id | Object Instance | 实例 ID |
object_index | String | 这是其实例的对象的名称 (使用 asset_get_index 获取实际对象) |
x | Real | 实例位置的 x 坐标 |
y | Real | 实例位置的 y 坐标 |
xscale | Real | 实例的 x 比例 |
yscale | Real | 实例的 y 比例 |
angle | Real | 实例的旋转角度 |
image_index | Real | 实例使用的图像索引 |
image_speed | Real | 实例的图像速度 |
colour | Colour | 用于绘制实例的混合颜色 |
creation_code | Script Function | 包含实例创建代码的脚本函数的索引 |
pre_creation_code | Script Function | 包含实例预创建代码的脚本函数的索引 |
这种类型的结构代表房间中的一层。
这些结构可在 layers 数组中找到,该数组是函数返回的主结构的一部分。
变量名 | 数据类型 | 描述 |
---|---|---|
id | Real | 层 ID |
name | String | 图层名称 |
visible | Boolean | 图层是否可见 |
depth | Real | 图层深度 |
xoffset | Real | 图层的 x 偏移量 |
yoffset | Real | 图层的 y 偏移量 |
hspeed | Real | 层的水平速度 |
vspeed | Real | 层的垂直速度 |
effectEnabled | Boolean | 当前是否启用图层滤镜 / 效果 |
effectToBeEnabled | Boolean | 是否应在下一帧中启用 / 禁用图层滤镜 / 效果 (effectEnabled 的下一个值) |
effect | FX Struct | 包含效果参数的结构 (如果未设置图层效果,则为 -1) |
shaderID | Shader Asset | 要应用于图层的着色器 (layer_shader) |
elements | Array of Room Layer Element Info Struct | 列出图层上所有元素的数组。每个元素类型结构都包含特定于它的信息。 |
这种类型的结构代表房间中的一个视图。
这些结构可在 views 数组中找到,该数组是函数返回的主结构的一部分。
变量名 | 数据类型 | 描述 |
---|---|---|
visible | Boolean | 视图是否可见 |
cameraID | Camera ID | 分配给该视图的摄像机 |
xview | Real | 视图相机位置的 x 坐标 |
yview | Real | 视图相机位置的 y 坐标 |
wview | Real | 视图相机的宽度 |
hview | Real | 视图相机的高度 |
hspeed | Real | 视图的水平移动速度 |
vspeed | Real | 视图的垂直移动速度 |
xport | Real | 屏幕上绘制视图的 x 位置 |
yport | Real | 屏幕上绘制视图的 y 位置 |
wport | Real | 视口的宽度 |
hport | Real | 视口的高度 |
object | Object Asset | 摄像机应跟踪房间中第一个实例的对象 |
hborder | Real | 要跟随的对象实例周围的水平边框 |
vborder | Real | 要跟随的对象实例周围的垂直边框 |
这种类型的结构代表一层中的一个元素。
这些结构可以在 elements 数组中找到,该数组是层结构的一部分。
变量名 | 数据类型 | 描述 |
---|---|---|
所有元素类型 | ||
id | Real | 元素的唯一 ID |
type | Layer Element Type Constant | 元素类型 |
背景元素类型 | ||
sprite_index | Sprite Asset | 背景使用的精灵 |
image_index | Real | 精灵的子图像 |
xscale | Real | 沿 x 轴的比例 |
yscale | Real | 沿 y 轴的比例 |
htiled | Boolean | 背景图片是否水平平铺 |
vtiled | Boolean | 背景图片是否垂直平铺 |
stretch | Boolean | 是否拉伸背景,使其充满整个房间 |
visible | Boolean | 背景是否可见 |
blendColour | Colour | 用于绘制背景的混合颜色 |
blendAlpha | Real | 要使用的 0 到 1 之间的 alpha 值 |
image_speed | Real | 背景图像速度 |
speed_type | Sprite Speed Constant | 表示 image_speed 的单位,spritespeed_framespersecond 或 spritespeed_framespergameframe |
name | String | 背景名称 |
实例元素类型 | ||
inst_id | Object Instance | 实例 ID |
精灵元素类型 | ||
sprite_index | Sprite Asset | 该精灵元素的精灵索引 |
image_index | Real | 精灵的子图像 |
x | Real | 精灵位置的 x 坐标 |
y | Real | 精灵位置的 y 坐标 |
image_xscale | Real | 图像沿 x 轴的比例 |
image_yscale | Real | 图像沿 y 轴的比例 |
image_angle | Real | 图像角度 |
image_alpha | Real | 0 到 1 之间的 alpha 值 |
image_blend | Colour | 混合颜色 |
image_speed | Real | 图像的动画速度,以 speed_type 单位表示 |
speed_type | Sprite Speed Constant | 表示 image_speed 的单位,spritespeed_framespersecond 或 spritespeed_framespergameframe |
name | String | 房间编辑器 中给定的 sprite 元素的名称 (默认为 graphic_*) |
平铺地图元素类型 | ||
x | Real | 房间中图块地图的 x 位置 (或偏移量) |
y | Real | 房间中图块地图的 y 位置 (或偏移量) |
tileset_index | Tile Set Asset | 该图块地图使用的图块集 |
data_mask | Real | 瓦片地图的位掩码值 |
tiles | Array of Real | 仅当 tilemap_data 参数设置为 true 时,此变量才会出现。它是一个一维数组,包含所有瓦片地图数据,逐行列出。 |
width | Real | 平铺地图单元格的宽度 |
height | Real | 平铺地图单元格的高度 |
name | String | 瓦片地图的名称 |
粒子系统元素类型 | ||
ps | Particle System Asset | 粒子系统 |
x | Real | 粒子系统位置的 x 坐标 |
y | Real | 粒子系统位置的 y 坐标 |
angle | Real | 粒子系统旋转的角度 |
xscale | Real | 粒子系统沿 x 轴的尺度 |
yscale | Real | 粒子系统沿 y 轴的尺度 |
blend | Colour | 用于绘制粒子系统的混合颜色 |
alpha | Real | 要使用的 0 到 1 之间的 alpha 值 |
name | String | 房间编辑器 中定义的粒子系统元素的名称 (默认为 article_*) |
平铺元素类型 | ||
visible | Boolean | 磁贴是否可见 |
sprite_index | Sprite Asset | 该图块所在的精灵 |
x | Real | 瓦片位置的 x 坐标 |
y | Real | 瓦片位置的 y 坐标 |
width | Real | 瓷砖的宽度 |
height | Real | 瓷砖的高度 |
image_xscale | Real | 沿图块 x 轴的比例因子 |
image_yscale | Real | 沿图块 y 轴的比例因子 |
image_angle | Real | 瓷砖的角度 |
image_blend | Colour | 用于绘制瓷砖的混合色 |
image_alpha | Real | 要使用的 alpha |
xo | Real | 所述 x 偏移 |
yo | Real | y 偏移 |
序列元素类型 | ||
x | Real | 序列位置的 x 坐标 |
y | Real | 序列位置的 y 坐标 |
image_xscale | Real | 整个序列沿 x 轴的沿着比例 |
image_yscale | Real | 沿整个序列 y 轴的沿着比例 |
image_angle | Real | 序列旋转的角度 |
image_alpha | Real | 要使用的 0 到 1 之间的 alpha 值 |
image_blend | Colour | 用于绘制序列的混合色 |
image_speed | Real | 序列的动画速度,以 speed_type 单位表示 |
speedType | Sprite Speed Constant | 表示 image_speed 的单位,spritespeed_framespersecond 或 spritespeed_framespergameframe |
seq_id | Sequence Asset | 序列资产 |
name | String | 在 房间编辑器 中定义的序列元素的名称 (默认为 graphic_*) |
head_position | Real | 序列的播放头位置 |
room_get_info(room, [views], [instances], [layers], [layer_elements], [tilemap_data]);
参数 | 类型 | 描述 |
---|---|---|
room | Room Asset | 获取信息的房间 |
views | Boolean | 可选 是否在结构中包含视图信息 (默认为 true) |
instances | Boolean | 可选 是否在结构中包含实例信息 (默认为 true) |
layers | Boolean | 可选 是否在结构中包含层信息 (默认为 true) |
layer_elements | Boolean | 可选 是否在结构中包含图层元素信息 (默认为 true,要求将图层设置为 true) |
tilemap_data | Boolean | 可选 是否在结构中包含图块地图数据 (默认为 true,需要将 layers 和 layer_elements 设置为 true) |
var _info = room_get_info(Room1);
var _info_json = json_stringify(_info, true);
show_debug_message(_info_json);
上面的代码获取房间 Room1 的信息,使用 json_stringify 将返回的结构体转换为 JSON 字符串,然后将其输出到调试消息中。所有视图、实例、图层、图层元素和图块地图信息都包含在输出中。