Fixed tiles not breaking & misc other things

main
Luna 2021-08-07 13:39:04 -07:00
parent 94da8b0870
commit 3ab87517da
2 changed files with 33 additions and 21 deletions

View File

@ -14,7 +14,7 @@ let hit = false;
let hitTile = false;
let tileX;
let tileY;
let ballSpeed = 12;
let ballSpeed = 15;
let turn = 0;
let button;
let score = 0;
@ -77,31 +77,45 @@ function draw() {
tileY = grid[i][j].y
hitTile = collideRectCircle(tileX, tileY, width / 13, width / 64, ballX, ballY, width / 64);
if (hitTile === true) {
// vec = createVector(random(-1, 1), random(0, 4));
// vec.normalize();
grid[i][j].hit = true;
ballSpeedX *= -1;
ballSpeedY *= -1;
vec = createVector(random(-1, 1), random(0, 4));
vec.normalize();
ballSpeedX = vec.x * ballSpeed;
ballSpeedY = vec.y * ballSpeed;
// ballSpeedX *= -1;
// ballSpeedY *= -1;
grid[i].splice(j, 1)
//ADDING SCORE WHEN BALL HITS TILES
if (j >= 0 && j <= 6) {
score += 6 - j
}
break;
}
grid[i][j].deleteOnHit() // DELETES THE TILE ON HIT
}
}
// BALL COLLISION FOR PADDLE
hit = collideRectCircle(mouseX, paddleY, width / 12, height / 64, ballX, ballY, width / 64);
if (hit === true) {
// BALL COLLISION FOR LEFT AND RIGHT PADDLE
hitLeft = collideRectCircle(mouseX, paddleY, width / 24, height / 64, ballX, ballY, width / 64);
if (hitLeft === true) {
vec = createVector(random(-1, 1), random(0, 4));
vec.normalize();
vec.setHeading(45)
ballSpeedX = vec.x * -ballSpeed;
ballSpeedY = vec.y * -ballSpeed;
}
hitRight = collideRectCircle(mouseX + width / 24, paddleY, width / 16, height / 64, ballX, ballY, width / 64);
if (hitRight === true) {
vec = createVector(random(-1, 1), random(0, 4));
vec.normalize();
vec.setHeading(90)
ballSpeedX = vec.x * -ballSpeed;
ballSpeedY = vec.y * -ballSpeed;
}
@ -115,9 +129,14 @@ function draw() {
// paddleX += 10
// };
// rectMode(CENTER)
push()
noStroke()
fill(255);
rect(mouseX, paddleY, width / 12, height / 64);
rect(mouseX, paddleY, width / 24, height / 64); //Left Paddle
rect(mouseX + width / 24, paddleY, width / 24, height / 64); //Right Paddle
rectMode(CORNER)
pop()
// SCORE KEEPING
@ -126,9 +145,9 @@ function draw() {
// WIN CONDITION
if (level === 1 && grid.length === 0) {
if (level === 1 && grid.every(row => row.length == 0)) {
winGame()
} else if (grid.length === 0) {
} else if (grid.every(row => row.length == 0)) {
lostGame()
level++
}

View File

@ -8,7 +8,6 @@ class Tile {
this.colors = colors
this.x = i * width / 13;
this.y = j * width / 64;
this.hit = false;
this.score = score
}
@ -22,10 +21,4 @@ class Tile {
this.colors = colors
return colors;
}
deleteOnHit() {
if (this.hit) {
grid[this.i].splice(this.j, 1)
}
}
}