使用“tick”事件增量来创建计时器,但它运行得太快

时间:2014-09-18 08:00:50

标签: timer easeljs createjs ticker

我在EaselJS中使用“tick”事件的delta属性,以便以毫秒为单位创建一个简单的计时器。我的自动收报机设置为60 FPS。当游戏运行时,我在每个刻度之间大约需要16/17毫秒(1000/60 = 16.6667) - 所以我对此很满意。但是,当我将此值附加到我的文本值(从0开始)时,它的速度会比它应该快得多。我期待平均每秒会显示1000的时间。我的代码(以块为单位)在下面(game.js和gameInit.js是单独的文件)。我希望我只是忽略了一些非常简单的事情......

//gameInit.js
createjs.Ticker.setFPS(60);
createjs.Ticker.on("tick", this.onTick, this);

...

//game.js
p.run = function (tickerEvent) {
    if (this.gameStarted == true ) {
        console.log("TICK ms since last tick = " + Math.floor(tickerEvent.delta)); // returns around 16/17
        this.timerTextValue += Math.floor(tickerEvent.delta); //FIXME seems too fast!
        this.timerText.text = this.timerTextValue;
    }
};

亲切的问候, 富

1 个答案:

答案 0 :(得分:0)

解决了它。多么愚蠢的错误!所以,我有另一个地方,我正在初始化自动收报机,这意味着它被调用两次,因此我的计时器显示双倍快速的原因