使用此函数,可以在房间中定义区域以停用先前已激活的实例。该区域可标记为"内部"或"外部",如下图所示:
您可以在上图中看到,"Apple"实例始终处于非活动状态,因为即使sprite本身不与区域重叠,边界框也会重叠。因此,当实例的边界框与其重叠时,它们被认为在指定的区域内,并且未考虑碰撞掩码的状态(精确与否)。请注意,取消激活不是即时的,在调用函数的事件结束之前,以这种方式取消激活的实例不会被视为非活动状态。
警告 停用启用了物理功能的实例将 不会 阻止其装置在物理模拟中进行交互。为此,您应在激活 / 停用实例时将其 phy_active 变量设置为 true 或 false。
instance_deactivate_region(left, top, width, height, inside, notme);
参数 | 类型 | 描述 |
---|---|---|
left | Real | 要停用的矩形区域左侧的X坐标。 |
top | Real | 要取消激活的矩形区域顶部的Y坐标。 |
width | Real | 要停用的区域的宽度。 |
height | Real | 要停用的区域的高度。 |
inside | Boolean | 停用区域内部(true)或外部(false)的实例。 |
notme | Boolean | 是否从停用(true)或不(false)中排除调用实例。 |
N/A
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);
上面的代码激活所有实例,然后取消激活房间内的一个区域。