# miniExtend Time
对应源文件: time.lua
。
# 函数介绍
# getTick
函数原型:
function getTick() end
返回当前是第几游戏帧。
只要你理解游戏帧的含义,该函数很容易理解。
# scheduleCall
在 ticks
游戏帧后以 ...
为参数调用函数 func
。
函数原型:
function scheduleCall(ticks, func, ...) end
参数:
ticks
: 类型为number
的正整数,会被设置为math.max(math.floor(ticks), 1)
来修正不合法的数值。func
类型为function
, 会检查类型。...
类型不限,作为调用func
时传递的实参。
WARNING
本函数同步执行。如果在当前线程执行 func
,这可能导致程序阻塞。
# nextTick(func, ...)
在下一帧以 ...
为参数调用函数 func
。
函数原型:
function nextTick(func, ...)
scheduleCall(1, func, ...)
end
等价于 scheduleCall(1, func, ...);
,会检查 func
类型。
# 示例
从第 2 帧开始,每一帧都在日志输出 "tick"
、当前帧和 fibonacci[tick]
。
其中 tick
表示当前的帧数。
fibonacci
表示斐波那契数列,详见百度百科词条 (opens new window)。
-- fib_2 表示 fibonacci[tick-2] , fib_1 表示 fibonacci[tick-1]
function f(fib_2, fib_1)
-- fib 表示 fibonacci[tick]
local fib = fib_1 + fib_2
--Console:log() 函数参见 miniExtend Console
Console:log("tick", getTick(), fib)
nextTick(f, fib_1, fib)
end
-- fibonacci[0] = 0, fibonacci[1] = 1
scheduleCall(2, f, 0, 1)
部分输出如下(忽略时间,标签前缀):
tick 2 1
tick 3 2
tick 4 3
tick 5 5
tick 6 8
tick 7 13