object_set_persistent

使用此函数,可以设置特定对象的持久性。永久对象从房间"携带"到另一个房间,并始终保持其属性(有关持久性的更多信息,请参阅对象编辑器部分)。 设置对象的持久性意味着该对象的所有实例(在持久性被更改后创建)将持久创建,而已经在房间中的实例可能不会受到影响。

在房间中创建启用持久性的实例时,将为其指定一个图层或深度(取决于用于创建对象实例的函数)。更改房间时,如果下列房间没有与所分配的图层具有相同名称或深度的图层,则将为贯穿这些房间的实例创建新的图层。如果在创建实例时指定了命名层,则新层的名称也与原始层相同,而如果为实例指定了深度,则新层将命名为"_layer_XXX",其中"XXX"是用于给层指定唯一名称的十六进制值。这些层将从房间末端的房间移除。关于层和持久实例,需要注意的是,如果您在创建时为实例分配了命名层,并且以下房间中有另一个层具有相同名称,则不管层的深度如何,持久实例都将被分配给具有相同名称的层。 最后,如果持久实例移动到层深度与实例创建深度相同的房间,则不会将其分配给此层,而是在相同深度创建新层(遵循前面说明的命名约定)。

请注意这不是实例函数!您可以使用持久变量设置单个实例的持久标记,因此即使相关对象在 IDE 中将标记设置为 false,仍有 10 个实例全部标记为持久化,即使使用此函数将对象的持久标记更改为 true,房间中当前的所有实例将保持原样,只有调用函数后创建的实例才会以永久标记为 true 开始。

 

语法:

object_set_persistent(index, pers);

参数类型描述
indexObject Asset要更改的对象的索引。
persBoolean对象是否应标记为持久(true)或不标记为持久(false)。

 

返回:

N/A

 

例子:

if (room == rm_final)
{
    object_set_persistent(obj_Player, false);
}
instance_create_layer(32, 32, "Instances", obj_Player);

上面的代码检查实例当前位于哪个房间,如果它位于指定的"rm_final"中,则它将对象"obj_Player"的持久性设置为false,然后创建实例。