此函数在指定时间之后或特定时间间隔之后触发回调函数。它通过创建时间源(请参见时间源)来执行此操作。
要取消回调函数,请参阅 call_cancel。
重要 虽然此函数返回实际时间源,但它不能与时间源函数一起使用,因为 call_later 和 call_cancel 使用的时间源是 " 不可见的" - 它们不会出现作为任何内置时间源的子级,不能与其他时间源函数一起使用。不过,它们包含在 debug_event("ResourceCounts") 返回的时间源计数中。
下面是这个函数的参数明细:
这是一段时间,可以用秒或帧表示,具体取决于下一个参数中指定的单位。
使用帧作为单位时,句点必须是整数。非整数值向下舍入 (浮点),但低于 1 的值除外,这些值向上舍入为 1。
这是周期所用的单位,可以是 time_source_units_seconds 或 time_source_units_frames。
请参阅:时间源单位
通过使用time_bpm_to_seconds(),可以使用"每分钟-毫秒(BPM)"值。
必须指定在时间源过期时调用的"回调"方法。
时间源是否应循环。
call_later(period, unit, callback, [loop=false]);
参数 | 类型 | 描述 |
---|---|---|
period | Real | 时间源运行的时间段,以给定单位表示 |
units | Time Source Unit Constant | 给定期间所在的单位 |
callback | Method or Script Function | 在指定时间之后要调用的方法或脚本函数 |
loop | Boolean | 可选 是否循环时间源(默认为 false) |
var _callback = function()
{
show_debug_message("Five seconds have passed!");
}
var _handle = call_later(5, time_source_units_seconds, _callback);
在本例中,我们将创建一个回调函数,该函数显示五秒后的调试消息。之后,下面的时间源被销毁。
var _create_enemy = function()
{
var _x = random(room_width);
var _y = random(room_height);
instance_create_depth(_x, _y, depth, obj_enemy);
}
var _handle = call_later(10, time_source_units_seconds, _create_enemy, true);
在此示例中,我们创建一个回调函数,该函数在房间中的随机位置创建一个新敌人。然后将该函数传递给 call_later,每 10 秒执行一次。最后一个参数设置为 true,因此该函数每 10 秒就会被调用一次。
使用 call_cancel 以及 call_later 返回的句柄来停止时间源和对回调的调用。