instance_deactivate_region


语法:

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 变量设置为 truefalse


例如:

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);

上面的代码激活所有实例,然后冻结房间内的某个区域。