From 160fd773220bc35c2746d205d82207cb7e46cea1 Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Sun, 26 Aug 2018 21:53:16 +0200 Subject: [PATCH 1/3] Prepare for animated collectable --- src/collectable.js | 11 +++++++++++ src/scene.js | 11 ++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/collectable.js b/src/collectable.js index 508d6f9..7e5ed9a 100644 --- a/src/collectable.js +++ b/src/collectable.js @@ -4,6 +4,17 @@ class Collectable { this.x = x; this.y = y; this.collected = false; + + this.frameNumber = 0; + this.maxFrame = 0; + } + + update(time = 0.02) { + this.frameNumber++; + + if (this.frameNumber >= this.maxFrame) { + this.frameNumber = 0; + } } } diff --git a/src/scene.js b/src/scene.js index 8be53a7..fa52030 100644 --- a/src/scene.js +++ b/src/scene.js @@ -55,12 +55,6 @@ class Scene extends Screen { // The the line for the high score this.currentMaxHeight = this.maxHeight; - // Generate random initial platforms - // for (let i = 0.25; i <= 2; i += 0.33) { - // let platform = new Platform(Math.random(), i, 0.2); - // this.addPlatform(platform); - // } - } start() { @@ -198,6 +192,9 @@ class Scene extends Screen { // Collisions with the border of the screen this.player.x = Math.max(this.player.x, this.player.size / 4); this.player.x = Math.min(this.player.x, 1 - this.player.size / 4); + + // Update coin frames + this.collectables.map((c) => c.update(time)); } addPlatform(object) { @@ -239,7 +236,7 @@ class Scene extends Screen { this.context.drawImage( Collectable.texture, - 0, 0, 64, 64, + 0, 64 * object.frameNumber, 64, 64, (object.x - object.size / 2) * this.width(), (1 - object.y) * this.height() - size / 2, size, size From 03c9a31d17d5130c250121258386a821d65a5fe1 Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Sun, 26 Aug 2018 21:55:38 +0200 Subject: [PATCH 2/3] Animated coin --- src/collectable.js | 2 +- src/scene.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/collectable.js b/src/collectable.js index 7e5ed9a..644bc7f 100644 --- a/src/collectable.js +++ b/src/collectable.js @@ -6,7 +6,7 @@ class Collectable { this.collected = false; this.frameNumber = 0; - this.maxFrame = 0; + this.maxFrame = 14; } update(time = 0.02) { diff --git a/src/scene.js b/src/scene.js index fa52030..fe71c65 100644 --- a/src/scene.js +++ b/src/scene.js @@ -236,7 +236,7 @@ class Scene extends Screen { this.context.drawImage( Collectable.texture, - 0, 64 * object.frameNumber, 64, 64, + 0, 32 * object.frameNumber, 32, 32, (object.x - object.size / 2) * this.width(), (1 - object.y) * this.height() - size / 2, size, size @@ -306,7 +306,7 @@ class Scene extends Screen { // Draw coin number this.context.drawImage(Collectable.texture, - 0, 0, 64, 64, + 0, 0, 32, 32, 0, fontSize + 5, 0.05 * this.width(), 0.05 * this.width()); this.context.fillText(this.collectableNumber, 0.05 * this.width() + 5, 2 * fontSize) From 9d3898ecf0fdbd6b15c1502ba9f2ca89b669b008 Mon Sep 17 00:00:00 2001 From: Thomas Forgione Date: Sun, 26 Aug 2018 21:58:54 +0200 Subject: [PATCH 3/3] Should work with 64x64 collectable --- src/scene.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scene.js b/src/scene.js index fe71c65..fa52030 100644 --- a/src/scene.js +++ b/src/scene.js @@ -236,7 +236,7 @@ class Scene extends Screen { this.context.drawImage( Collectable.texture, - 0, 32 * object.frameNumber, 32, 32, + 0, 64 * object.frameNumber, 64, 64, (object.x - object.size / 2) * this.width(), (1 - object.y) * this.height() - size / 2, size, size @@ -306,7 +306,7 @@ class Scene extends Screen { // Draw coin number this.context.drawImage(Collectable.texture, - 0, 0, 32, 32, + 0, 0, 64, 64, 0, fontSize + 5, 0.05 * this.width(), 0.05 * this.width()); this.context.fillText(this.collectableNumber, 0.05 * this.width() + 5, 2 * fontSize)