51Testing软件测试论坛

标题: Torque 中 Schedule 命令的妙用 [打印本页]

作者: 51testing    时间: 2008-1-9 11:14
标题: Torque 中 Schedule 命令的妙用
在 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);
}




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2