ball b;
paddle p;
Star[] stars = new Star[100];
brick r1;
brick r2;
brick r3;
brick r4;
brick r5;
brick r6;
brick r7;
brick r8;
brick r9;
brick r10;
brick r11;
brick r12;
brick r13;
brick r14;
brick r15;
brick r16;
brick r17;
brick r18;
brick r19;
brick r20;
brick r21;
void setup() {
size(800, 600);
p = new paddle();
b = new ball();
//////////////////////////////////////// I CANT GET ARRAYS OR ARRAYLISTS TO WORK WITH BRICKS OR WITH STARS///////////////////////
for (int s = 0; s < 100; s++) {
stars[s] = new Star((int)random(0, 800), (int)random(0, 600));
}
//first row
r1 = new brick(130, 150);
r2 = new brick(220, 150);
r3 = new brick(310, 150);
r4 = new brick(400, 150);
r5 = new brick(490, 150);
r6 = new brick(580, 150);
r7 = new brick(670, 150);
//seccond row
r8 = new brick(130, 120);
r9 = new brick(220, 120);
r10 = new brick(310, 120);
r11 = new brick(400, 120);
r12 = new brick(490, 120);
r13 = new brick(580, 120);
r14 = new brick(670, 120);
//third row
r15 = new brick(130, 90);
r16 = new brick(220, 90);
r17 = new brick(310, 90);
r18 = new brick(400, 90);
r19 = new brick(490, 90);
r20 = new brick(580, 90);
r21 = new brick(670, 90);
}
void draw() {
background(0);
//ball stuff
b.displayBall();
b.moveBall();
b.collisionBall();
p.displayPaddle();
/////////////////////////////////////////////////BROKEN ARRAY?/////////////////////////////////////////////
for (int s = 0; s < 100; s++) {
stars[s].displayStars();
}
//brick layout
r1.displayBrick();
r2.displayBrick();
r3.displayBrick();
r4.displayBrick();
r5.displayBrick();
r6.displayBrick();
r7.displayBrick();
r8.displayBrick();
r9.displayBrick();
r10.displayBrick();
r11.displayBrick();
r12.displayBrick();
r13.displayBrick();
r14.displayBrick();
r15.displayBrick();
r16.displayBrick();
r17.displayBrick();
r18.displayBrick();
r19.displayBrick();
r20.displayBrick();
r21.displayBrick();
}//ball is life
int xSpeed = 8;
int ySpeed = 9;
int state = 0;
int ballX = 400;
int ballY = 300;
PVector ballLoc;
PVector ballocity;
class ball {
ball() {
ballLoc = new PVector(400, 300);
ballocity = new PVector(8, height/2);
}
void displayBall() {
noStroke();
fill(color(#00FF1F));
ellipseMode(CENTER);
ellipse(ballX, ballY, 20, 20);
}
void moveBall() {
//set starting position
if (mousePressed) {
state = 1;
}
if (state == 1) {
ballX = ballX + xSpeed;
ballY = ballY + ySpeed;
ballX = constrain(ballX, 0, width);
////////////////////////////////////////////////PVectors result in ball not moving
//ballLoc.add(ballocity);
//ballLoc.x = ballLoc.x + ballocity.x;
//ballLoc.y = ballLoc.y + ballocity.y;
}
}
//add ball collision
void collisionBall() {
if ((ballX >= width) || (ballX <= 0)) {
xSpeed = xSpeed * -1;
}
if (ballY <= 0) {
ySpeed = ySpeed * -1;
}
//paddle collision
if ((ballY+10 >= paddleY-10) && (ballX+10 >= paddleX-50) && (ballX-10 <= paddleX+50) && (ballY-10 <= paddleY+10)) {
ySpeed = ySpeed * -1;
}
//reset ball position
if (ballY >= 600) {
ballX = (int) random(10, 790);
ballY = 300;
state = 0;
}
}
}class brick {
int brickHit = 0;
int brickPlaceX;
int brickPlaceY;
brick(int xLoc, int yLoc) {
brickPlaceX = xLoc;
brickPlaceY = yLoc;
}
void displayBrick() {
//if in normal state be a rectangle
if (brickHit == 0) {
rect(brickPlaceX, brickPlaceY, 80, 20);
}
//if hit achieve hit state
if ((ballX <= brickPlaceX+40) && (ballX >= brickPlaceX-40) && (ballY <= brickPlaceY+10) && (ballY >= brickPlaceY -10)) {
brickHit = 1;
}
//disappear when hit
if (brickHit == 1) {
brickPlaceX = 1000;
brickPlaceY = 1000;
//change ball direction and get rid of brick collision
ySpeed = ySpeed * -1;
brickHit = 2 ;
}
}
}int paddleX = mouseX;
int paddleY = 580;
class paddle {
void displayPaddle() {
noStroke();
fill(color(#00FF1F));
rectMode(CENTER);
rect(paddleX, paddleY, 100, 20);
paddleX = mouseX;
paddleX = constrain(paddleX, 50, 750);
}
}int starxloc;
int staryloc;
class Star {
Star (int starX, int starY) {
starxloc = starX;
staryloc = starY;
}
void displayStars() {
noStroke();
ellipse(starxloc, staryloc, 2, 2);
}
}