instance_deactivate_region

使用此函数,可以在房间中定义区域以停用先前已激活的实例。该区域可标记为"内部"或"外部",如下图所示:

Instance deactivate region example您可以在上图中看到,"Apple"实例始终处于非活动状态,因为即使sprite本身不与区域重叠,边界框也会重叠。因此,当实例的边界框与其重叠时,它们被认为在指定的区域内,并且未考虑碰撞掩码的状态(精确与否)。请注意,取消激活不是即时的,在调用函数的事件结束之前,以这种方式取消激活的实例不会被视为非活动状态。

注意 如果您在房间启动时停用实例 (即通过房间创建代码,或通过房间内实例的实例 创建事件 ),则放置在房间内的所有实例在停用之前, 房间编辑器 仍会运行其 Create 事件

警告 停用启用了物理功能的实例将 不会 阻止其装置在物理模拟中进行交互。为此,您应在激活 / 停用实例时将其 phy_active 变量设置为 truefalse

语法:

instance_deactivate_region(left, top, width, height, inside, notme);

参数类型描述
leftReal要停用的矩形区域左侧的X坐标。
topReal要取消激活的矩形区域顶部的Y坐标。
widthReal要停用的区域的宽度。
heightReal要停用的区域的高度。
insideBoolean停用区域内部(true)或外部(false)的实例。
notmeBoolean是否从停用(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);

上面的代码激活所有实例,然后取消激活房间内的一个区域。