2014-09-18 4 views
0

EaselJS의 "tick"이벤트의 delta 속성을 사용하여 밀리 초 단위로 간단한 타이머를 만듭니다. 내 시세는 60FPS로 설정되어 있습니다. 게임이 실행 중일 때 나는 각 진드기 (1000/60 = 16.6667) 사이에 약 16/17 ms를 얻고 있습니다. 그래서 이것에 만족합니다. 그러나,이 값을 (0부터 시작하는) 텍스트 값에 추가 할 때보다 더 빨리 올라갑니다. 평균적으로 1 초당 1000의 시간이 표시 될 것으로 예상했습니다. 내 코드 (청크)는 아래에 있습니다 (game.js 및 gameInit.js는 별도의 파일입니다). 나는 ... 난 그냥 정말 간단 뭔가를 내려다 오전"tick"이벤트 델타를 사용하여 타이머를 만들었지 만 너무 빠르게 실행 중임

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

친절 감사를 바라고, 리치

+0

이 구성을 놓치셨습니까? createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED; – LoGary

+0

안녕하세요, 귀하의 의견을 주셔서 감사하지만 이것은 차이가 없습니다. 나는 모든 다양한 "timingMode"를 시도하고 행운이 없었습니다. –

답변

0

그것을 해결. 어리석은 실수! 그래서, 나는 그것이 두 번 호출 되었기 때문에 시세를 초기화하는 다른 곳을 가졌습니다. 따라서 내 타이머가 두 배로 빠르게 표시되는 이유는 무엇입니까?