alarm

此一维 数组 用于获取实例可能具有的任何警报的当前值,或者可用于设置这些警报。对象的每个实例中内置有 12 个警报,每个警报都有自己的 事件 ,该事件将在该变量达到 0 时运行。

警报会在每个步骤开始时、Begin Step 事件 之后 但主 Step 事件 之前 以及为帧渲染任何内容之前进行倒计时。这意味着,如果您在 Begin Step 事件中将闹钟设置为 1,则其事件将在同一帧中运行 (因为在 Begin Step 完成后闹钟将倒计时至 0),但如果您设置在 Step 事件中将警报设置为 1,它将在下一帧中运行。

需要注意的是,当闹钟到达 0 时 (尽管事件已经被触发),闹钟还没有结束,下一步它会下降到 -1,所以如果你出于任何原因需要停止闹钟,你应该设置它的数组值设置为 -1 不是 0。闹钟时间以 游戏步数 计算,值 30 表示 30 步,60 表示 60 步,依此类推。

注意 没有任何操作或代码的警报将不会运行。然而,即使只有注释而没有代码,警报也会倒计时。

您可以直接设置警报数组 (也可以直接使用数组获取当前警报值),但在某些情况下这不是最合适的方法,因此您也可以使用函数 alarm_set 设置闹钟,函数 alarm_get 获取闹钟值。

注意 此变量不保存真正的 GML 数组,因此您无法对其运行任何 数组函数 或对其进行序列化 (将其转换为字符串)。您可以对其运行的唯一操作是使用 alarm[index] 语法访问索引处的值。

 

语法:

alarm[index]

 

返回:

Real (-1 if the alarm isn't running)

 

例子:

if (canshoot)
{
    if (keyboard_check_pressed(vk_space))
    {
        canshoot = false;
        alarm[0] = game_get_speed(gamespeed_fps);
        instance_create_layer(x, y, "Bullets", obj_Bullet);
    }
}

上面的代码检查一个变量,然后如果它为真,则检查按键,如果它为真,则最终将变量设置为假,设置警报(其中它将再次设置为真)并创建一个实例。