summaryrefslogtreecommitdiff
path: root/src/game.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.js')
-rw-r--r--src/game.js28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/game.js b/src/game.js
index 69a91ce..073455a 100644
--- a/src/game.js
+++ b/src/game.js
@@ -7,37 +7,25 @@ game.loop = (timeStamp) => {
game.systems[i].update(elapsedTime, game.entities);
});
+ if (game.nextLevel) {
+ game.loadLevel(game.nextLevel);
+ game.nextLevel = false;
+ }
+
requestAnimationFrame(game.loop);
}
game.initialize = () => {
+ [game.entities, game.config] = game.loadLevel(game.levels[0]);
+
game.systemOrder = ["render", "physics", "gridSystem", "keyboardInput"];
game.systems = {
render: game.system.Render(game.graphics),
physics: game.system.Physics(),
- gridSystem: game.system.GridSystem({
- xDim: 15,
- yDim: 15,
- canvasWidth: game.canvas.width,
- canvasHeight: game.canvas.height,
- }),
+ gridSystem: game.system.GridSystem({...game.config}),
keyboardInput: game.system.KeyboardInput(),
};
- game.entities = {};
-
- Array(10).fill(null).forEach((_, i) => {
- const bigBlue = game.createBigBlue();
- bigBlue.addComponent(game.components.GridPosition({x: Math.floor(Math.random() * 15), y: Math.floor(Math.random() * 13)}));
- bigBlue.addComponent(game.components.Controllable({controls: ['left', 'right', 'up', 'down']}));
- game.entities[bigBlue.id] = bigBlue;
- });
-
- game.rock = game.createRock();
- game.rock.addComponent(game.components.Position({x: 200, y: 200}));
- game.rock.addComponent(game.components.GridPosition({x: 0, y: 0}));
- game.rock.addComponent(game.components.Pushable());
- game.entities[game.rock.id] = game.rock;
lastTimeStamp = performance.now()
requestAnimationFrame(game.loop);