WebGL でアニメーション化するために JavaScript でタイマーを作成しようとしています。Date クラスを使用して経過時間を取得するコードです。
var lastTime = Date.now();
var elapsed = 0;
var timeNow = Date.now();
function animate() {
timeNow = Date.now();
if(timeNow > lastTime) {
elapsed = timeNow - lastTime;
console.log(elapsed);
}
lastTime = timeNow;
}
Animate は window.requestAnimationFrame() コールバックから呼び出されます。しかし、それは 16 から 17 の間の値を生成しているようです。20 を超えることはありません。何が起こっているのでしょうか?
編集:実際、それは私のダープでした。Elapsed は = ではなく += である必要がありました。なぜ16から17の間だったのかを説明してくれたAbstract Algorithmに感謝します。:)