mirror of
https://github.com/wassname/GarageServer.IO.git
synced 2026-06-28 16:20:43 +08:00
Made a GameLoop helper module to make game class cleaner
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user