diff --git a/res/images/aseprite/example.aseprite b/res/images/aseprite/example.aseprite index d404fb2..2fb0c6a 100644 Binary files a/res/images/aseprite/example.aseprite and b/res/images/aseprite/example.aseprite differ diff --git a/res/images/aseprite/tilemap.aseprite b/res/images/aseprite/tilemap.aseprite index dd0ca0c..4eb1a5f 100644 Binary files a/res/images/aseprite/tilemap.aseprite and b/res/images/aseprite/tilemap.aseprite differ diff --git a/res/images/tilemap.png b/res/images/tilemap.png index 532aeb8..6ceef37 100644 Binary files a/res/images/tilemap.png and b/res/images/tilemap.png differ diff --git a/res/tilemap.js b/res/tilemap.js index 11a3012..e9ab177 100644 --- a/res/tilemap.js +++ b/res/tilemap.js @@ -49,6 +49,10 @@ * 44. Stamina filled * 45. Stamina empty * 46. Fireball + * 47. Door_s + * 48. Corner bottom -> left after 16 + * 49. Corner right -> bottom before 12 + * 50. bottom piece underneath 47 ------------------------------------------------------------------- */ module.exports = [ { @@ -286,4 +290,24 @@ module.exports = [ y: 288, walkable: false }, + { + x: 64, + y: 288, + walkable: true + }, + { + x: 96, + y: 288, + walkable: false + }, + { + x: 128, + y: 288, + walkable: false + }, + { + x: 0, + y: 320, + walkable: false + }, ]; \ No newline at end of file diff --git a/src/levels/1-1.js b/src/levels/1-1.js new file mode 100644 index 0000000..f5e49c8 --- /dev/null +++ b/src/levels/1-1.js @@ -0,0 +1,40 @@ +const tileSize = 32; + +let level = { + tiles: [ + 1, 2, 2, 5, 6, + 4, 21, 22, 23, 7, + 4, 17, 17, 17, 7, + 4, 17, 17, 17, 7, + 4, 17, 17, 17, 7, + 14, 16, 18, 12, 13, + 0, 14, 50, 13, 0, + ], + size: { + w: 5 * tileSize, + h: 7 * tileSize + }, + startPos: [ + { x: 56, y: 64 } + ], + entities: [ + { + type: "Chest", + pos: { x: 2 * tileSize, y: 2 * tileSize }, + action: (player) => { + player.items.keys.push("1-1_1"); + } + }, + { + type: "Portal", + pos: { x: 2 * tileSize, y: 5 * tileSize }, + texture: "Door_s", + action: (_player, level) => { + level.switch = { module: __dirname + "/1-2.js", pos: 0 }; + }, + key: "1-1_1" + } + ] +}; + +module.exports = level; \ No newline at end of file diff --git a/src/levels/1-2.js b/src/levels/1-2.js new file mode 100644 index 0000000..a619d91 --- /dev/null +++ b/src/levels/1-2.js @@ -0,0 +1,48 @@ +const tileSize = 32; + +let level = { + tiles: [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, + 4, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 22, 23, 21, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 4, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, + 14, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 10, 13 + ], + size: { + w: 30 * tileSize, + h: 10 * tileSize + }, + startPos: [ + { x: 5 * tileSize, y: 3 * tileSize }, + { x: 48, y: 128 } + ], + entities: [ + { + type: "Mage", + pos: { x: 1 * tileSize, y: 8 * tileSize } + }, + { + type: "Chest", + pos: { x: 4 * tileSize, y: 2 * tileSize }, + action: (player) => { + player.items.keys.push("1-1_1"); + } + }, + { + type: "Portal", + pos: { x: 5 * tileSize, y: 1 * tileSize }, + texture: "Door_n", + action: (_player, level) => { + level.switch = { module: __dirname + "/1-1.js", pos: 0 }; + }, + key: "1-1_1" + } + ] +}; + +module.exports = level; \ No newline at end of file diff --git a/src/screens/game.js b/src/screens/game.js index 92d648e..69f2869 100644 --- a/src/screens/game.js +++ b/src/screens/game.js @@ -17,6 +17,8 @@ class GameScreen extends Container { this.keys = keys; this.onGameOver = onGameOver; + this.keys.reset(); + // Initialise first level 1-1.js at startPosition 0 var player = new Player(keys, window); @@ -75,6 +77,7 @@ class GameScreen extends Container { this.level = level; this.stats = stats; this.camera = camera; + this.keys.reset(); } update(dt, t) {