Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rodleviton/fba2feb4f179099b034b to your computer and use it in GitHub Desktop.
Save rodleviton/fba2feb4f179099b034b to your computer and use it in GitHub Desktop.
// Full Blog Post: http://viget.com/extend/time-based-animation
// requestAnimationFrame() polyfill: https://gist.github.com/1579671
window.APP = window.APP || {};
APP.pause = function() {
window.cancelAnimationFrame(APP.core.animationFrame);
};
APP.play = function() {
APP.core.then = Date.now();
APP.core.frame();
};
APP.core = {
frame: function() {
APP.core.setDelta();
APP.core.update();
APP.core.render();
APP.core.animationFrame = window.requestAnimationFrame(APP.core.frame);
},
setDelta: function() {
APP.core.now = Date.now();
APP.core.delta = (APP.core.now - APP.core.then) / 1000; // seconds since last frame
APP.core.then = APP.core.now;
},
update: function() {
// Render updates to browser (draw to canvas, update css, etc.)
},
render: function() {
// Update values
// var distance = 100 * APP._delta;
// APP.thing.x += 100 * APP._delta;
}
};
APP.play();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment