From e0ebef2a2700f6906825a996b55739961c3dfd39 Mon Sep 17 00:00:00 2001 From: JDG Date: Mon, 15 Nov 2021 00:29:50 +0100 Subject: [PATCH] Added bricks type 2 and 3 --- Bricks.js | 34 +++++++++++++++++++++++++--------- GamePlay.js | 4 ++-- Levels.js | 20 ++++++++++---------- 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/Bricks.js b/Bricks.js index 0ad6e1a..8c380ff 100644 --- a/Bricks.js +++ b/Bricks.js @@ -7,24 +7,40 @@ class Brick { this.vspace = 2; this.hspace = 2; - this.w = (360/8) -this.hspace; + this.w = (360 / 8) - this.hspace; this.h = (20) - this.vspace; - this.x = (this.w +this.hspace)*column; - this.y = 80 + (this.h +this.vspace)*row; + this.x = (this.w + this.hspace) * column; + this.y = 80 + (this.h + this.vspace) * row; - this.alive = true; + switch (type) { + case 2: this.lives = 2; break; + case 3: this.lives = 3; break; + default: this.lives = 1; break; + } + } + + crack() { + this.lives--; } update(ctx) { - if (!this.alive) return false; - - switch(this.type) { + if (this.lives == 0) return false; + + switch (this.lives) { case 1: ctx.fillStyle = 'blue'; - ctx.fillRect(this.x+1, this.y, this.w, this.h); + ctx.fillRect(this.x + 1, this.y, this.w, this.h); + break; + case 2: + ctx.fillStyle = 'orange'; + ctx.fillRect(this.x + 1, this.y, this.w, this.h); + break; + case 3: + ctx.fillStyle = 'red'; + ctx.fillRect(this.x + 1, this.y, this.w, this.h); break; } return true; } - + } \ No newline at end of file diff --git a/GamePlay.js b/GamePlay.js index 7ba18b2..5a65bc3 100644 --- a/GamePlay.js +++ b/GamePlay.js @@ -53,10 +53,10 @@ class GamePlay extends Board { let r = ball.update(this.ctx, this.bar.x + this.bar.w/2, this.bar.y); ball.collide( this.bar.x, this.bar.y, this.bar.x + this.bar.w, this.bar.y + this.bar.h ); this.bricks.forEach(b=>{ - if(b.alive){ + if(b.lives>0){ if ( ball.collide(b.x,b.y,b.x+b.w,b.y+b.h) ) { this.score.add(1); - b.alive = false; + b.crack(); } }}); diff --git a/Levels.js b/Levels.js index 2a11894..14dba20 100644 --- a/Levels.js +++ b/Levels.js @@ -12,20 +12,20 @@ class Levels { break; case 2: map = [].concat( - this.row(0, [1, 1, 1, 0, 1, 1, 0, 0]), - this.row(1, [0, 0, 1, 0, 1, 0, 1, 0]), - this.row(2, [0, 0, 1, 0, 1, 0, 1, 0]), - this.row(3, [1, 0, 1, 0, 1, 0, 1, 0]), - this.row(4, [0, 1, 1, 0, 1, 1, 0, 0]) + this.row(0, [3, 3, 3, 0, 3, 3, 0, 0]), + this.row(1, [0, 0, 3, 0, 3, 0, 3, 0]), + this.row(2, [0, 0, 3, 0, 3, 0, 3, 0]), + this.row(3, [3, 0, 3, 0, 3, 0, 3, 0]), + this.row(4, [0, 3, 3, 0, 3, 3, 0, 0]) ); break; default: map = [].concat( - this.row(0, [1, 1, 1, 1, 1, 1, 1, 1]), - this.row(1, [1, 1, 1, 1, 1, 1, 1, 1]), - this.row(2, [1, 1, 1, 1, 1, 1, 1, 1]), - this.row(3, [1, 1, 1, 1, 1, 1, 1, 1]), - this.row(4, [1, 1, 1, 1, 1, 1, 1, 1]) + this.row(0, [1, 3, 1, 3, 1, 3, 1, 3]), + this.row(1, [3, 1, 3, 1, 3, 1, 3, 1]), + this.row(2, [1, 3, 1, 3, 1, 3, 1, 3]), + this.row(3, [3, 1, 3, 1, 3, 1, 3, 1]), + this.row(4, [1, 3, 1, 3, 1, 3, 1, 3]) ); break; }