47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名: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_(); |