2

大家好,我正在与八哥一起开发游戏,我想设置一个计时器,例如每 2 秒我想要一些事情发生。我使用了 juggler elapsed 道具,但我想知道是否有更有效的方法来做到这一点

谢谢你,

哈立德

4

2 回答 2

13

或者,您可以使用“DelayedCall”类。很容易错过!;-)

var delayedCall:DelayedCall = new DelayedCall(method, 2.0);
delayedCall.repeatCount = int.MAX_VALUE;
Starling.juggler.add(delayedCall);

function method():void
{
    trace("ping");
}
于 2012-06-05T19:14:33.347 回答
2

如果这与动画无关,建议对非动画内容使用 Timer。

计时器实现将比输入帧处理程序上的额外时间计算具有更高的性能。

如果您正在推进 Starling Jugglers,您可以将 Juggler 的帧速率设置为每 2 秒。

delayCall如果你的仿函数冗余调用 delayCall,杂耍者也可以每 2 秒无限循环一次:

juggler.delayCall(functor, 2.0);

为了配合 Starlings 帧/渲染生命周期,您可以测试自上次调用以来的时间。

private var lastCallTime:int

protected function frameHandler():void
{
    var now:int = getTimer();
    var ellapsed:int = now - lastCallTime;
    if(ellapsed >= 2000)
    {
        /* execute implementation */
        lastCallTime = now;
    }
}
于 2012-06-03T00:19:43.163 回答