From: MegaBrutal Date: Wed, 3 Jan 2018 13:40:00 +0000 (+0100) Subject: Add particle effect for player death X-Git-Url: http://git.megabrutal.com/?p=ld40.git;a=commitdiff_plain;h=731aa57b3da0e89209ae2aaf19ee4960a7ae564f;hp=ec8eeabbaf8576510fcd67a78f56b7d94575e8f9 Add particle effect for player death Added a simple particle effect to visualize how the player's soul shatters upon death. The Game Over screen had to be delayed as the player needs some time to see the particle effect. modified: ld40.js new file: soulbreak.png new file: soulbreak.svg --- diff --git a/ld40.js b/ld40.js index 01a65ce..7bd582e 100644 --- a/ld40.js +++ b/ld40.js @@ -14,6 +14,7 @@ const WAIT_MONSTERSHOOT = 500; const WAIT_MONSTERSPAWN = 20000; const WAIT_DETERMINATION = 4000; + const WAIT_DEATH = 4000; const WALL_THICKNESS = 16; const WALL_BORDER = 8; const WALL_BORDERBOTTOM = 48; @@ -48,11 +49,16 @@ this.lasttime_shoot = 0; this.lasttime_mode = 0; this.lasttime_damage = 0; + this.lasttime_death = 0; this.speed = SPEED_PLAYER; this.switchmode(MODE_DETERMINATION); this.weapon = new JusticeBlaster(game, this); this.weapon.bulletSpeed = SPEED_PPROJECTILE; this.healthBar = new HealthBar(60, game.world.height - (WALL_BORDERBOTTOM / 2)); + this.soulbreakEmitter = this.game.add.emitter(0, 0, 8); + this.soulbreakEmitter.gravity = 1000; + this.soulbreakEmitter.setXSpeed(-300, 300); + this.soulbreakEmitter.makeParticles('soulbreak'); } enablePhysics() { @@ -81,7 +87,10 @@ this.health = 0; this.healthBar.update(this.love, this.maxHealth, this.health); super.kill(); - this.game.state.start('GameOver'); + this.soulbreakEmitter.x = this.x; + this.soulbreakEmitter.y = this.y; + this.soulbreakEmitter.explode(2000, 8); + this.lasttime_death = this.game.time.now; } loveUp() { @@ -267,6 +276,7 @@ game.load.image('monster', 'monster.png'); game.load.image('determination', 'determination.png'); game.load.image('projectile', 'projectile.png'); + game.load.image('soulbreak', 'soulbreak.png'); } @@ -326,6 +336,11 @@ if ((game.time.now - player.lastmovetime) > WAIT_KEY) player.body.velocity.x = player.body.velocity.y = 0; + if ((!player.alive) && (game.time.now > (player.lasttime_death + WAIT_DEATH))) + { + game.state.start('GameOver'); + } + } } diff --git a/soulbreak.png b/soulbreak.png new file mode 100644 index 0000000..c8943ae Binary files /dev/null and b/soulbreak.png differ diff --git a/soulbreak.svg b/soulbreak.svg new file mode 100644 index 0000000..de67fc1 --- /dev/null +++ b/soulbreak.svg @@ -0,0 +1,3 @@ + + +