Search code examples
timereaseljscreatejsticker

Using "tick" event delta to create timer but it's running too fast


I am using the "tick" event's delta property in EaselJS in order to create a simple timer in milliseconds. My ticker is set to 60 FPS. When the game is running I am getting roughly 16/17 ms between each tick (1000/60 = 16.6667) - so I am happy with this. However, when I append this value onto my text value (starting from 0) it is going up considerably quicker than it should be. I was expecting that on average it would be displaying a time of 1000 for each second elapsed. My code (in chunks) is below (game.js and gameInit.js are separate files). I am hoping that I am just overlooking something really simple...

//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;
    }
};

Kind Regards, Rich


Solution

  • Solved it. What a silly mistake! So, I had another place where I was initialising the ticker meaning it was being invoked twice, hence the reason that my timer was displaying doubly quick