最近在做一个游戏,又碰到了困扰我N久的难题,那就是定时器的触发并不是我所希望的那样准确,结果痛下决心,一定要搞定它!
先来看看矛盾和问题:
这里,我们所指的“定时器”就是Director内置的超时对象,其相关应用非常广泛,相信朋友们大都使用过它,但是你又没有发现这个定时器经常“偷工减料”,耽误了工期呢?举一个最简单的例子,在一个800600的舞台上,我放置了一个500500的bitmap精灵在舞台的左端,并在这个精灵上附加了如下的脚本:
property mytimer,begintime
property mysprite
property myloch,myspeed
on beginsprite me
mytimer=timeout(“mytimer”).new(1,#doMove,me)
mysprite=sprite(me.spritenum)
myloch=mysprite.loch
myspeed=1
begintime=the milliseconds
end
on domove me
myloch=myloch+myspeed
mysprite.loch=myloch
if myloch=550 then
put the milliseconds-begintime
halt
end if
end
从上面的脚本可以看出我的意图,我希望没一微秒将精灵向右移动一像素,直至精灵到舞台右端为止,总行程为800-500个像素,即300像素。那么显然,如果计时器准确的话,精灵应该在300微秒之内完成移动&#x