TA的每日心情 | 慵懒 2015-1-8 08:46 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]测试小兵
|
在 Torque 游戏引擎中,有一个Schedule函数,
它的作用是调度一个事件,使该事件在time毫秒中後触发。
其定义为:
Schedule(time, reference, command, <arg1...argN>)
其中:
time : 等待触发的时间,几毫秒内。
reference : 要添加事件的所在的对象,或者为0,表示一个命令全局的命令。
command : 要执行的命令。
arg1...argN : 实现命令的补充参数,可选择。
其中最简单的用法莫过于设置一个一段事件後将要触发的事件。
例如:
$evt = Schedule(10000, 0, "BuildingExplosing");
这段脚本代码表示我设置了,在执行到这条脚本之后10秒钟後,执行脚本函数 BuildingExplosing
发生一次建筑物的爆炸。
如果我想设置windows中一样一个timer在一段时间内,按一定频率反复触发一个命令,该怎么办?
开始我翻了许多Torque的资料都没有找到相关的代码,后来发现其实可以妙用Schedule命令,
来实现这一功能。
脚本程序结构如下:
下面的代码,保证了当你第一次执行think()命令以后,接下来10秒钟内,
会反复每隔10ms自动触发一次think()命令,
$timeCount是一个全局计时,当有1000个10MS后,自动退出,
就像下面这个类似递归的调用,产生了一个定时器的效果。
function think()
{
$timeCount++;
//do some think, anything else....
................
if($timeCount>1000) return;
schedule(10,0, think);
} |
|