Added bricks type 2 and 3

This commit is contained in:
2021-11-15 00:29:50 +01:00
parent 7cf0bfbdbd
commit e0ebef2a27
3 changed files with 37 additions and 21 deletions

View File

@ -12,17 +12,33 @@ class Brick {
this.x = (this.w + this.hspace) * column; this.x = (this.w + this.hspace) * column;
this.y = 80 + (this.h + this.vspace) * row; 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) { update(ctx) {
if (!this.alive) return false; if (this.lives == 0) return false;
switch(this.type) { switch (this.lives) {
case 1: case 1:
ctx.fillStyle = 'blue'; 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; 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; return true;
} }

View File

@ -53,10 +53,10 @@ class GamePlay extends Board {
let r = ball.update(this.ctx, this.bar.x + this.bar.w/2, this.bar.y); 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 ); ball.collide( this.bar.x, this.bar.y, this.bar.x + this.bar.w, this.bar.y + this.bar.h );
this.bricks.forEach(b=>{ 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) ) { if ( ball.collide(b.x,b.y,b.x+b.w,b.y+b.h) ) {
this.score.add(1); this.score.add(1);
b.alive = false; b.crack();
} }
}}); }});

View File

@ -12,20 +12,20 @@ class Levels {
break; break;
case 2: case 2:
map = [].concat( map = [].concat(
this.row(0, [1, 1, 1, 0, 1, 1, 0, 0]), this.row(0, [3, 3, 3, 0, 3, 3, 0, 0]),
this.row(1, [0, 0, 1, 0, 1, 0, 1, 0]), this.row(1, [0, 0, 3, 0, 3, 0, 3, 0]),
this.row(2, [0, 0, 1, 0, 1, 0, 1, 0]), this.row(2, [0, 0, 3, 0, 3, 0, 3, 0]),
this.row(3, [1, 0, 1, 0, 1, 0, 1, 0]), this.row(3, [3, 0, 3, 0, 3, 0, 3, 0]),
this.row(4, [0, 1, 1, 0, 1, 1, 0, 0]) this.row(4, [0, 3, 3, 0, 3, 3, 0, 0])
); );
break; break;
default: default:
map = [].concat( map = [].concat(
this.row(0, [1, 1, 1, 1, 1, 1, 1, 1]), this.row(0, [1, 3, 1, 3, 1, 3, 1, 3]),
this.row(1, [1, 1, 1, 1, 1, 1, 1, 1]), this.row(1, [3, 1, 3, 1, 3, 1, 3, 1]),
this.row(2, [1, 1, 1, 1, 1, 1, 1, 1]), this.row(2, [1, 3, 1, 3, 1, 3, 1, 3]),
this.row(3, [1, 1, 1, 1, 1, 1, 1, 1]), this.row(3, [3, 1, 3, 1, 3, 1, 3, 1]),
this.row(4, [1, 1, 1, 1, 1, 1, 1, 1]) this.row(4, [1, 3, 1, 3, 1, 3, 1, 3])
); );
break; break;
} }