Files
GarageServer.IO/example/public/javascripts/gameloop.js
T
2013-07-09 21:23:48 -04:00

33 lines
1.1 KiB
JavaScript

window.GameLoop = (function (window) {
var requestAnimFrame = (function () {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) { window.setTimeout(callback, 1000/60); };
})(),
_currentTime = new Date().getTime(),
_accumulator = 0.0,
start = function (renderCallback, updateCallback) {
loop();
function loop () {
requestAnimFrame(loop);
var newTime = new Date().getTime(), frameTime = newTime - _currentTime;
if (frameTime > 250) {
frameTime = 250;
}
_currentTime = newTime;
_accumulator += frameTime;
while (_accumulator >= 15) {
updateCallback();
_accumulator -= 15;
}
renderCallback();
}
};
return {
start: start
};
}) (window);