ただのコピペです。
詳細はこちら→ http://t100life.blog121.fc2.com/blog-entry-209.html
動くテスト→ http://jsfiddle.net/T7Hug/
※consoleに出力しているだけなので、consoleみないとなにも動いてないように見えます。
var Game = {};
Game.FPS = 60;
Game.run = (function() {
var loops = 0,
skipTicks = 1000 / Game.FPS,
//1秒間に実行したいロジックの回数
maxFrameSkip = 10,
//スキップする間隔
nextGameTick = +new Date();
return function {
loops = 0;
while (+new Date() > nextGameTick && loops < maxFrameSkip) {
Game.update();
nextGameTick += skipTicks;
loops++;
}
//Rendering
Game.draw();
};
})();
//Rendering logic
Game.draw = function () {console.log('draw');};
//Game logic
Game.update = function () {console.log('update');};
// Start the game loop
Game._intervalId = setInterval(Game.run, 0);