xxxxxxxxxx
float bx, by, bxsp, bysp, br; // ball variables
float rx, ry, rw, rh; // rectangle 1 variables (bricks)
boolean rect1Active = true; // Makes sure rectangle 1 is present
float rx2, ry2, rw2, rh2; // rectangle 2 variables (bricks)
boolean rect2Active = true; // makes sure rectangle 2 is present
float paddlex, paddley, paddlew, paddleh; // paddle
void setup() {
size(300, 500);
// Ball values
bx = 50 + random(50);
by = 400 + random(50);
bxsp = 3;
bysp = bxsp;
br = 10;
// Rectangle 1 (or a Brick) Values
rx = 20;
ry = 80;
rw = 50;
rh = 20;
// rectangle 2 (or the other brick) values
rx2 = 200;
ry2 = 120;
rw2 = 50;
rh2 = 20;
// White Paddle at the bottom of screen
paddley = 440;
paddlew = 100;
paddleh = 20;
}
void draw() {
bx = bx + bxsp;
by = by + bysp;
paddlex = mouseX; // I want to move the paddle with mouse
background(0);
// hit detection on rectangle 1
if ( rect1Active && (bx > rx - br) && (bx < rx + rw + br) &&
(by > ry - br) && (by < ry + rh + br) ) {
rect1Active = false;
if (bx < rx) { //left
bxsp = -3;
bx = rx - br;
} else if (bx > rx+rw) { //right
bxsp = 3;
bx = rx + rw + br;
} else if (by < ry) { //top
bysp = -3;
by = ry - br;
} else if (by > ry) { //bottom
bysp = 3;
by = ry + rh + br;
}
}
// hit detection on rectangle 2
if ( rect2Active && (bx > rx2 - br) &&
(bx < rx2 + rw2 + br) &&
(by > ry2 - br) &&
(by < ry2 + rh2 + br) ) {
rect2Active = false;
if (bx < rx2) { //left
bxsp = -3;
bx = rx2 - br;
} else if (bx > rx2+rw2) { //right
bxsp = 3;
bx = rx2 + rw2 + br;
} else if (by < ry2) { //top
bysp = -3;
by = ry2 - br;
} else if (by > ry2) { //bottom
bysp = 3;
by = ry2 + rh2 + br;
}
}
// hit detection on paddle
if ( (bx > paddlex - br) && (bx < paddlex + paddlew + br) &&
(by > paddley - br) && (by < paddley + paddleh + br) ) {
if (bx < paddlex) { //left
bxsp = -3;
bx = paddlex - br;
} else if (bx > paddlex+paddlew) { //right
bxsp = 3;
bx = paddlex + paddlew + br;
} else if (by < paddley) { //top
bysp = -3;
by = paddley - br;
} else if (by > paddley) { //bottom
bysp = 3;
by = paddley + paddleh + br;
}
}
//bounce off screen sides
if (bx-br > width || bx+br < 0) {
bxsp *=-1;
}
if (by > height || by < 0) {
bysp *=-1;
}
ellipse(bx, by, br*2, br*2);
if (rect1Active) {
fill( 0, 133, 100);
rect(rx, ry, rw, rh);
}
if (rect2Active) {
fill( 200, 133, 100);
rect(rx2, ry2, rw2, rh2);
}
fill(255);
rect(paddlex, paddley, paddlew, paddleh);
}
void mousePressed() {
//reset
rect1Active = true;
rect2Active = true;
}