0

以下の作品:

window.requestAnimFrame = (function(){
return  window.requestAnimationFrame ||
window.webkitRequestAnimationFrame   ||
window.mozRequestAnimationFrame      ||
window.oRequestAnimationFrame        ||
window.msRequestAnimationFrame       ||
function(callback){ window.setTimeout(callback, 1000 / 60); };
})();

function gameLoop() {
    requestAnimFrame(gameLoop);
}

ただし、モジュール パターンを使用して機能をパッケージ化しようとすると、次のようになります。

var GameModule = {

    requestAnimFrame: function() { 
    return window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame  ||
        window.mozRequestAnimationFrame     ||
    window.oRequestAnimationFrame       ||
        window.msRequestAnimationFrame      ||
    function(callback){ window.setTimeout(callback, 1000 / 60); };
   },

   gameLoop: function() {
       this.requestAnimFrame(this.gameLoop);
   }
};

// run the game
(function(){
    Game.gameLoop();
})();

... requestAnimFrame を 1 回だけ呼び出します。私は長い間それをいじっていましたが、再帰的に動作させる方法を理解できないようです。

4

1 に答える 1

0

修理済み:

this.requestAnimFrame(this.gameLoop());
于 2013-04-01T17:47:56.703 に答える