我正在玩画布,首先阅读一堆游戏循环片段/帖子并将它们组合成最好的。
我今天看到了这个片段(它是帖子的一部分,所以他们稍后会对其进行进一步的迭代。但我正在整合这些想法),但这让我有点困惑。
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
外部函数中定义的...
那么这个游戏会在外部匿名函数中保持其状态吗?如果是这样,有什么想法他们为什么这样做?
至于 eg loops
,每次调用都设置为 0 ,是否在外部声明以避免每次重新声明变量?