summaryrefslogtreecommitdiff
path: root/centipede/js/game/game.js
diff options
context:
space:
mode:
Diffstat (limited to 'centipede/js/game/game.js')
-rw-r--r--centipede/js/game/game.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/centipede/js/game/game.js b/centipede/js/game/game.js
new file mode 100644
index 0000000..30454f9
--- /dev/null
+++ b/centipede/js/game/game.js
@@ -0,0 +1,39 @@
+const game = {
+ stopped: false,
+ width: document.getElementById('game-canvas').width,
+ height: document.getElementById('game-canvas').height,
+ level: 1,
+};
+
+game.resume = () => {
+ game.stopped = false;
+ game.lastTimeStamp = performance.now();
+ menu.reRegisterKeys();
+ requestAnimationFrame(gameLoop);
+}
+
+game.resetObjects = () => {
+ game.player.x = game.width/2;
+ game.player.y = game.height/2;
+ game.bullets = [];
+ game.explosions = [];
+ game.mushroomDims = {width: 40, height: 40};
+ game.mushrooms = game.Mushroom.generateMushrooms(game.mushroomDims);
+ game.centipede = game.Centipede({segments: Math.min(game.level*5 + 5, 15), startX: game.width/2, startY: 0, rot: 180, width: 40, height: 40, dx: 0.2, dy: 0});
+ game.spiders = [];
+ game.fleas = [];
+ game.scorpions = [];
+}
+
+game.gameOver = () => {
+ menu.showMenu();
+ menu.setState('game-over');
+ menu.addScore(game.score);
+
+ menu.onHide = initialize;
+}
+
+game.getObjects = () => [game.player, ...game.bullets, ...game.mushrooms, ...game.spiders, ...game.fleas, ...game.scorpions, game.centipede, ...game.explosions];
+game.getBulletCollidableObjects = () => [...game.mushrooms, ...game.spiders, ...game.fleas, ...game.scorpions, game.centipede];
+game.getMushroomCollidableObjects = () => [game.player, ...game.scorpions, game.centipede];
+game.getPlayerCollidableObjects = () => [...game.spiders, ...game.fleas, ...game.scorpions, game.centipede] \ No newline at end of file