instance_deactivate_region(left, top, width, height, inside, notme);
参数 | 描述 |
---|---|
left | 要冻结的矩形区域左侧的 x 坐标。 |
top | 要冻结的矩形区域顶部的 y 坐标。 |
宽度 | 要冻结的区域的宽度。 |
高度 | 要冻结的区域的高度。 |
inside | 是冻结区域内部的实例(true)还是外部的实例(false)。 |
notme | 是否保持调用实例冻结(true)或激活(false)。 |
返回: N/A(无返回值)
使用此函数,你可以在房间内定义一个区域来冻结先前激活的实例。该区域可以标记为 “内” 或 “外”,如下图所示:
你可以在上面的图像中看到,“apple” 实例始终处于冻结状态,因为即使精灵本身不重叠该区域,边界框也会重叠。因此,当实例的 “边界框”(Bounding Box) 与它重叠时,它们被认为在指定的区域内,并且碰撞遮罩(精确与否)的状态 未 被考虑在内。
注意: 如果你冻结房间开始上的实例(即:从房间创建代码,或从房间内实例的实例创建事件),从房间编辑器放置在房间内的所有实例 在冻结前 仍将运行其创建事件。
警告:冻结已启用物理的实例将 不会 停止其支架(fixture)在物理仿真中的交互。为此,在激活 / 冻结实例时,应该将其 phy_active 变量设置为 true 或 false。
instance_activate_all();
var _vx = camera_get_view_x(view_camera[0]);
var _vy = camera_get_view_y(view_camera[0]);
var _vw = camera_get_view_width(view_camera[0]);
var _vh = camera_get_view_height(view_camera[0]);
instance_deactivate_region(_vx - 64, _vy - 64, _vw + 128, _vh + 128, false, false);
上面的代码激活所有实例,然后冻结房间内的某个区域。