Deactivating Instances

GameMaker为您提供"关闭"实例的可能性,以便不再以任何方式处理它们。从技术上来说,它们实际上已经不存在了,除了作为去激活过程本身的指针,这意味着在重新激活之前,不能以任何方式操作或更改已停用的实例。因此,使用这些函数时应该非常小心,因为它们在使用不当时会引起问题,特别是对于持久对象,因为已停用的持久对象将不会移动到下一个房间,除非它首先被重新激活(从游戏中有效地将其删除)。另请注意,激活和去激活不是瞬时,在函数被调用的事件的结束之前,以这种方式改变其状态的实例不会被视为活动/不活动。

通常没有必要在游戏的每一步都停用实例,这实际上会导致游戏出现性能问题。相反,建议您仅在警报中每隔几步运行一次这些函数(例如),或者在相机视图已更改位置时运行这些函数,尤其重要的是,不要在绘制事件中使用这些函数,因为这可能会导致游戏中出现严重错误。

停用的实例实际上不再存在于游戏中,但单个实例仍然可以访问其变量。但是,您不能将与(object)与(instance)一起使用,而是必须使用以下形式的唯一ID直接访问实例:

val = inst.variable;

在上面的示例中," inst "是一个变量,它保存已停用实例的ID,这是引用已停用实例的唯一方法,而无需事先激活它。

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

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

存在以下用于停用实例的函数: