diff --git a/src/assets/items/jump.png b/src/assets/items/jump.png new file mode 100644 index 0000000..707a2e9 Binary files /dev/null and b/src/assets/items/jump.png differ diff --git a/src/entities/Chest.js b/src/entities/Chest.js index f073829..5698714 100644 --- a/src/entities/Chest.js +++ b/src/entities/Chest.js @@ -29,7 +29,7 @@ export default class Chest extends Interactable { this.play('chest_open'); - const options = [/*"slow", "speed", "storm", */"heal"]; + const options = [/*"storm", "slow", */"jump", "speed", "heal"]; let item = new Item(this.scene, { x: this.x, diff --git a/src/entities/Item.js b/src/entities/Item.js index 557e63e..2536a82 100644 --- a/src/entities/Item.js +++ b/src/entities/Item.js @@ -34,6 +34,18 @@ export default class Item extends Interactable { case "heal": user.hit(-2) break; + case "speed": + const oldSpeed = user.getData('speed'); + + user.setData("speed", oldSpeed * 1.5); + setTimeout(() => user.setData('speed', oldSpeed), 5000); + break; + case "jump": + const oldjump = user.getData('jump'); + + user.setData("jump", oldjump * 2); + setTimeout(() => user.setData('jump', oldSpeed), 5000); + break; } this.die(); } diff --git a/src/entities/Player.js b/src/entities/Player.js index 1fc44ff..8293106 100644 --- a/src/entities/Player.js +++ b/src/entities/Player.js @@ -14,6 +14,7 @@ export default class Player extends Entity { constructor(scene, spawnPoint, texture) { super(scene, spawnPoint.x, spawnPoint.y, texture); this.setData("speed", 100); + this.setData('jump', 1.5) this.setData('hp', 10); this.setOrigin(0.5, 1).setScale(32 / 48); @@ -74,7 +75,7 @@ export default class Player extends Entity { // Jumping, Dashing if (this.scene.upActive() && this.body.blocked.down) { - this.body.velocity.y = -this.getData('speed') * 1.5; + this.body.velocity.y = -this.getData('speed') * this.getData('jump'); } // Walking L R diff --git a/src/scenes/Game.js b/src/scenes/Game.js index 755aef2..4635bc2 100644 --- a/src/scenes/Game.js +++ b/src/scenes/Game.js @@ -25,7 +25,7 @@ export default class Game extends Phaser.Scene { default: 'arcade', arcade: { gravity: {y: 300}, - debug: true + // debug: true } } }); @@ -251,6 +251,13 @@ export default class Game extends Phaser.Scene { repeat: -1 }); + this.anims.create({ + key: 'item_jump', + frames: this.anims.generateFrameNumbers('jump', {start: 0, end: 11}), + frameRate: 10, + repeat: -1 + }); + const mapKey = this.scene.settings.data.level; const mapTilesetKey = "tiles"; diff --git a/src/scenes/Preload.js b/src/scenes/Preload.js index 74cc9ea..8106278 100644 --- a/src/scenes/Preload.js +++ b/src/scenes/Preload.js @@ -26,6 +26,7 @@ import heal from "../assets/items/heal.png"; import slow from "../assets/items/slow.png"; import speed from "../assets/items/speed.png"; import storm from "../assets/items/storm.png"; +import jump from "../assets/items/jump.png"; import heart from "../assets/heart.png"; import chest from "../assets/chest.png"; import arrow from "../assets/arrow.png"; @@ -66,6 +67,7 @@ export default class Preload extends Phaser.Scene { this.load.spritesheet('storm', storm, {frameWidth: 16, frameHeight: 16, margin: 1, spacing: 2}); this.load.spritesheet('speed', speed, {frameWidth: 16, frameHeight: 16, margin: 1, spacing: 2}); this.load.spritesheet('slow', slow, {frameWidth: 16, frameHeight: 16, margin: 1, spacing: 2}); + this.load.spritesheet('jump', jump, {frameWidth: 16, frameHeight: 16, margin: 1, spacing: 2}); this.load.tilemapTiledJSON("lvl1", lvl1); this.load.tilemapTiledJSON("tutorial", tutorial); this.load.tilemapTiledJSON("menu", menu);