aqualogue/main/Game.js

62 lines
1 KiB
JavaScript
Raw Normal View History

Game = (function() {
var Game = {};
var currentScene, incomingScene;
Game.init = function(callback) {
2016-05-12 21:35:17 -05:00
Music.init();
2016-05-18 21:42:58 -05:00
SFX.init();
2016-05-12 21:35:17 -05:00
Renderer.init(initScene);
function initScene() {
// Run callback to set the inital scene.
callback();
currentScene = incomingScene;
currentScene.init();
gameLoop();
}
}
Game.setScene = function(scene) {
incomingScene = scene;
}
var frameskipMonitor = 0;
function gameLoop() {
requestAnimationFrame(gameLoop);
2016-05-07 13:12:50 -05:00
Input.refresh();
Memory.global.time++;
2016-05-07 13:12:50 -05:00
flipScenes();
currentScene.ticCount++;
currentScene.think();
render();
}
function flipScenes() {
if (currentScene != incomingScene) {
currentScene.end();
2016-05-12 21:35:17 -05:00
currentScene.stage.destroy();
incomingScene.init();
currentScene = incomingScene;
}
}
function render() {
frameskipMonitor++;
if (frameskipMonitor >= Renderer.frameskip) {
frameskipMonitor = 0;
currentScene.render(Renderer.frameskip);
Renderer.show(currentScene.stage);
} else {
Renderer.skip();
}
}
return Game;
})();