splatjs
Version:
A 2D HTML5 Canvas game engine
34 lines (26 loc) • 706 B
JavaScript
;
var timeAccumulator = require("time-accumulator");
module.exports = function(entities, simulation, simulationStepTime, renderer, context) {
var run = timeAccumulator(simulationStepTime);
var timeDelta = require("./absolute-to-relative")();
var running = true;
function render(time) {
if (!running) {
return;
}
var elapsed = timeDelta(time);
run(elapsed, function(elapsed) {
simulation.run(entities.entities, elapsed);
});
context.save();
renderer.run(entities.entities, context, elapsed);
context.restore();
if (running) {
window.requestAnimationFrame(render);
}
}
window.requestAnimationFrame(render);
return function() {
running = false;
};
};