私はキャンバスをいじっており、ゲームループのスニペット/投稿をたくさん読んで、それらを可能な限り最高のものに結合することから始めています。
今日、このスニペットに出くわしました (投稿の途中なので、後でさらに反復します。しかし、アイデアを統合しながら進んでいきます)、少し当惑しています。
Game.run = (
function() {
var loops = 0;
var skipTicks = 1000 / Game.fps;
var maxFrameSkip = 10;
var nextGameTick = (new Date).getTime();
return function {
loops = 0;
while ((new Date).getTime() > nextGameTick && loops < maxFrameSkip) {
Game.update();
nextGameTick += skipTicks;
loops++;
}
Game.draw();
};
}
)();
Game._intervalId = setInterval(Game.run, 1000 / Game.fps);
そのGame.run
ため、内部関数である外部関数の結果が割り当てられます。しかし、内側の関数は、外側の関数で定義されている に依存してnextGameTick
います...
では、このゲームは外部の無名関数でその状態を維持するのでしょうか? もしそうなら、なぜ彼らがそれをしたのか考えはありますか?
そして、loops
呼び出しのたびに 0 に設定される例については、毎回変数を再宣言することを避けるために外部で宣言されていますか?