summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/.DS_Storebin8196 -> 8196 bytes
-rw-r--r--assets/image/.DS_Storebin8196 -> 8196 bytes
-rw-r--r--assets/image/lava.png (renamed from assets/image/liquid.png)bin310 -> 310 bytes
-rw-r--r--assets/image/water.pngbin0 -> 367 bytes
-rw-r--r--src/bootstrap.js8
-rw-r--r--src/entities/lava.js15
-rw-r--r--src/entities/liquid.js16
-rw-r--r--src/entities/water.js14
-rw-r--r--src/game.js2
-rw-r--r--src/render/sprites.js14
-rw-r--r--src/utils/loadLevel.js21
11 files changed, 69 insertions, 21 deletions
diff --git a/assets/.DS_Store b/assets/.DS_Store
index d6f9c0b..004359a 100644
--- a/assets/.DS_Store
+++ b/assets/.DS_Store
Binary files differ
diff --git a/assets/image/.DS_Store b/assets/image/.DS_Store
index a4819cb..1f17cf2 100644
--- a/assets/image/.DS_Store
+++ b/assets/image/.DS_Store
Binary files differ
diff --git a/assets/image/liquid.png b/assets/image/lava.png
index 0e6bdd2..0e6bdd2 100644
--- a/assets/image/liquid.png
+++ b/assets/image/lava.png
Binary files differ
diff --git a/assets/image/water.png b/assets/image/water.png
new file mode 100644
index 0000000..6e89b04
--- /dev/null
+++ b/assets/image/water.png
Binary files differ
diff --git a/src/bootstrap.js b/src/bootstrap.js
index 24e9c4c..ff4b4e4 100644
--- a/src/bootstrap.js
+++ b/src/bootstrap.js
@@ -21,11 +21,11 @@ game.bootstrap = (() => {
{
src: [
'src/entities/bigblue.js', 'src/entities/flag.js', 'src/entities/floor.js', 'src/entities/grass.js', 'src/entities/hedge.js',
- 'src/entities/liquid.js', 'src/entities/rock.js', 'src/entities/wall.js', 'src/entities/wordBigBlue.js',
+ 'src/entities/lava.js', 'src/entities/rock.js', 'src/entities/wall.js', 'src/entities/wordBigBlue.js',
'src/entities/wordFlag.js', 'src/entities/wordIs.js', 'src/entities/wordKill.js', 'src/entities/wordLava.js',
'src/entities/wordPush.js', 'src/entities/wordRock.js', 'src/entities/wordSink.js', 'src/entities/wordStop.js',
'src/entities/wordWall.js', 'src/entities/wordWater.js', 'src/entities/wordWin.js', 'src/entities/wordYou.js',
- 'src/entities/borderParticles.js'
+ 'src/entities/borderParticles.js', 'src/entities/water.js'
],
id: 'entities'
},
@@ -39,10 +39,10 @@ game.bootstrap = (() => {
];
const assets = {};
[
- "bigblue", "flag", "floor", "grass", "hedge", "liquid", "rock",
+ "bigblue", "flag", "floor", "grass", "hedge", "lava", "rock",
"wall", "wordBigBlue", "wordFlag", "wordIs", "wordKill", "wordLava",
"wordPush", "wordRock", "wordSink", "wordStop", "wordWall", "wordWater",
- "wordWin", "wordYou"
+ "wordWin", "wordYou", "water"
].map((x) => assets[x] = `assets/image/${x}.png`);
[
"background-music", "death", "move", "win"
diff --git a/src/entities/lava.js b/src/entities/lava.js
new file mode 100644
index 0000000..c0389bc
--- /dev/null
+++ b/src/entities/lava.js
@@ -0,0 +1,15 @@
+game.createLava = () => {
+ // TODO: Split this into two entities: water and lava
+ const lava = game.Entity();
+ lava.addComponent(game.components.LoadPriority({priority: 5}));
+ lava.addComponent(game.components.Appearance({rot: 0, width: 100, height: 100}));
+ lava.addComponent(game.components.Alive());
+ lava.sprite = game.graphics.Sprite({
+ image: game.assets.lava,
+ spriteHeight: 24,
+ spriteWidth: 24,
+ numFrames: 3,
+ timePerFrame: 100,
+ });
+ return lava;
+}
diff --git a/src/entities/liquid.js b/src/entities/liquid.js
deleted file mode 100644
index 27026d6..0000000
--- a/src/entities/liquid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-game.createLiquid = () => {
- // TODO: Split this into two entities: water and lava
- const liquid = game.Entity();
- liquid.addComponent(game.components.LoadPriority({priority: 5}));
- liquid.addComponent(game.components.Position({x: 0, y: 0}));
- liquid.addComponent(game.components.Appearance({rot: 0, width: 100, height: 100}));
- liquid.addComponent(game.components.Alive());
- liquid.sprite = game.graphics.Sprite({
- image: game.assets.liquid,
- spriteHeight: 24,
- spriteWidth: 24,
- numFrames: 3,
- timePerFrame: 100,
- });
- return liquid;
-}
diff --git a/src/entities/water.js b/src/entities/water.js
new file mode 100644
index 0000000..abefd3f
--- /dev/null
+++ b/src/entities/water.js
@@ -0,0 +1,14 @@
+game.createWater = () => {
+ const water = game.Entity();
+ water.addComponent(game.components.LoadPriority({priority: 5}));
+ water.addComponent(game.components.Appearance({rot: 0, width: 100, height: 100}));
+ water.addComponent(game.components.Alive());
+ water.sprite = game.graphics.Sprite({
+ image: game.assets.water,
+ spriteHeight: 24,
+ spriteWidth: 24,
+ numFrames: 3,
+ timePerFrame: 100,
+ });
+ return water;
+}
diff --git a/src/game.js b/src/game.js
index f649ba5..50db687 100644
--- a/src/game.js
+++ b/src/game.js
@@ -21,7 +21,7 @@ game.loop = (timeStamp) => {
}
game.initialize = () => {
- [game.entities, game.config] = game.loadLevel(game.levels[0]);
+ [game.entities, game.config] = game.loadLevel(game.levels[4]);
// Maintained by gridSystem as a side-effect
game.entitiesGrid = Array(game.config.yDim).fill(null).map(() => Array(game.config.xDim).fill(null).map(() => new Map()));
diff --git a/src/render/sprites.js b/src/render/sprites.js
index 286da4c..d8ae126 100644
--- a/src/render/sprites.js
+++ b/src/render/sprites.js
@@ -34,6 +34,13 @@ game.sprites = {
numFrames: 3,
timePerFrame: 100,
}),
+ lava: game.graphics.Sprite({
+ image: game.assets.lava,
+ spriteHeight: 24,
+ spriteWidth: 24,
+ numFrames: 3,
+ timePerFrame: 100,
+ }),
rock: game.graphics.Sprite({
image: game.assets.rock,
spriteHeight: 24,
@@ -48,6 +55,13 @@ game.sprites = {
numFrames: 3,
timePerFrame: 100,
}),
+ water: game.graphics.Sprite({
+ image: game.assets.water,
+ spriteHeight: 24,
+ spriteWidth: 24,
+ numFrames: 3,
+ timePerFrame: 100,
+ }),
wordBigBlue: game.graphics.Sprite({
image: game.assets.wordBigBlue,
spriteHeight: 24,
diff --git a/src/utils/loadLevel.js b/src/utils/loadLevel.js
index 4f0c701..3bd86d9 100644
--- a/src/utils/loadLevel.js
+++ b/src/utils/loadLevel.js
@@ -19,12 +19,33 @@ game.loadLevel = (level) => {
case 'f':
entity = game.createFlag();
break;
+ case 'g':
+ entity = game.createGrass();
+ break;
case 'l':
entity = game.createFloor();
break;
case 'w':
entity = game.createWall();
break;
+ case 'a':
+ entity = game.createWater();
+ break;
+ case 'A':
+ entity = game.createWordWater();
+ break;
+ case 'N':
+ entity = game.createWordSink();
+ break;
+ case 'V':
+ entity = game.createWordLava();
+ break;
+ case 'v':
+ entity = game.createLava();
+ break;
+ case 'K':
+ entity = game.createWordKill();
+ break;
case 'W':
entity = game.createWordWall();
break;