댓글에서 볼 수 있듯이 너무 많이 궁금 할 필요가 없습니다. 자바 스크립트 게임 프로그래밍을 할 때 가장 큰 것은 하드웨어가 다른 컴퓨터를 사용한다는 것입니다. 따라서 당신이 엔진을 보간하지 않으면 프레임 속도는 모두 다를 것입니다. 예를 들어
// Updated drawing code for our objects
Rect.prototype.draw = function(context, interpolation) {
context.fillRect(this.x, this.y + this.velocity * interpolation, 30, 30);
};
Game.draw = function(interpolation) {
this.context.clearRect(0, 0, 640, 480);
for (var i=0; i < this.entities.length; i++) {
this.entities[i].draw(this.context, interpolation);
}
};
Game.run = (function() {
var loops = 0, skipTicks = 1000/Game.fps,
maxFrameSkip = 10,
nextGameTick = (new Date).getTime(),
lastGameTick;
return function() {
loops = 0;
while ((new Date).getTime() > nextGameTick) {
Game.update();
nextGameTick += skipTicks;
loops++;
}
if (!loops) {
Game.draw((nextGameTick - (new Date).getTime())/skipTicks);
} else {
Game.draw(0);
}
};
})();
이 게임 논리를 Game.fps에 유지합니다. 당신이 피하고 싶은 또 다른 일은 드로잉 로직에서 jQuery를 사용하는 것입니다. 이것은 jQuery의 애니메이션 대기열이 매우 느리고 애니메이션이 무한대로 쌓여 결국 모든 프레임에서 더 큰 지연을 제공하기 때문입니다.
는
전역 범위에서 변수를 보호하는 한 중요하지 않습니다. 나는 이것에 대해 걱정하지 않을 것이다. 그것은 사소한 미세 최적화이다. – elclanrs
1) http://jsperf.com 2) 정확성을 위해 최적화 한 다음 속도를 높입니다. –
차이가있을 경우 사용자는이를 알 수 없습니다. –