HTML5 キャンバスを使用してゲームを開発しているので、requestAnimationFrame を使用して呼び出すゲーム ループがあります。Chrome または IE を使用すると、正常に動作し、安定した 60 fps でスムーズに動作します。Firefox で実行すると問題が発生します。FPS カウンターが 60 fps を超え (65 ~ 70 前後に設定)、プレイ体験はまったくスムーズではありません。実際に 60 fps を超える場合は、いくつかのフレームが失われている可能性があります。これは私がゲームループに使用しているコードです:
window.requestAnimFrame = (function() {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
gameloop=function(){
//Here I do my calculations and drawings
//I do this to calculate FPS
thisLoop=new Date;
var fps=1000/(thisLoop-lastLoop);
lastLoop=thisLoop;
requestAnimFrame(gameloop());
}
これについて説明はありますか?これは正常なことかもしれませんが、私は他のゲームをプレイしていますが、Firefox ではまったくこのように動作しないようです。
私はこの解決策を試しました:
http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animationing
しかし、最終結果は同じです。