DOF/sqr/Core/Timer/Timer.nut

47 lines
1.0 KiB
Plaintext
Raw Normal View History

2025-02-20 13:53:36 +08:00
/*
文件名:Timer.nut
路径:Core/Timer/Timer.nut
创建日期:2025-02-11 23:25
文件用途:定时器
*/
class _Timer_ {
Exec_Tree = null;
constructor() {
//执行树
Exec_Tree = [];
//注册Proc
_Game_Logic_Func_._Timer_Proc <- Proc.bindenv(this);
getroottable().Timer <- this;
}
//下帧执行
function SetNextFrame(target_func, ...) {
local target_arg_list = [];
target_arg_list.push(getroottable());
for (local i = 0; i< vargv.len(); i++) {
target_arg_list.push(vargv[i]);
}
//设置下一次执行
local func_info = [];
func_info.push(target_func);
func_info.push(target_arg_list);
Exec_Tree.push(func_info);
}
function Proc(Dt, Lister) {
foreach(Info in Exec_Tree) {
//函数
local func = Info[0];
//参数
local func_args = Info[1];
//执行函数
func.acall(func_args);
}
}
}
_Timer_();