xxxxxxxxxx
//Button
float rX;
float rY;
float rW;
float rH;
//Ball
float bX;
float bY;
float bW;
float bR;
//Multiple Balls
float multipleX;
float multipleSpeed = 5;
float [] multipleYpos = new float [75];
//Speed
float bSpeedX;
float bSpeedY;
//Boolean
boolean bTouched = false;
void setup () {
size (500, 500);
//Where balls will start
multipleX = width/4;
//Drawing balls from list
for (int counter = 0; counter < multipleYpos.length; counter = counter + 50){
multipleYpos[counter] = counter * 50;
}
//Rectangle size and location
rX = 200;
rY = 200;
rW = 200;
rH = 150;
// Ball size and location
bX = 20;
bY = 20;
bW = 30;
bR = bW/2;
//Ball speed
bSpeedY = 5;
bSpeedX = 5;
}
void draw () {
background (#1FFA0D); //Green background
for (float bX = 10; bX < width; bX = bX + 20){
ellipse (bX, bY, bW, bW);
bY = bY + bSpeedY;
if ((bY > rY) || (bY < 0)){
bSpeedX = bSpeedX * -1;
}
//If ball touches rectangle
if (bTouched == true) {
background (#4BFFDF); //Blue Background
} else {
bTouched = false;
}
//Ball bouncing off screen
if ((bY+bR > height) || (bY-bR < 0)) {
bSpeedY = bSpeedY * -1;
}
if ((bX+bR > width) || (bX-bR < 0)) {
bSpeedX = bSpeedX * -1;
}
// Ball hit detection to button
if ( (bY+bR >= rY) &&
(bX-bR <= rX + rW) &&
(bX+bR >= rX) &&
(bY-bR <= rY+rH) )
{
if (bX < rX) {
bSpeedX = -5;
// bX = rX - bR;
} else if (bX > rX + rW) {
bSpeedX = 5;
// bX = rX + bR;
} else if (bY < rY) {
bSpeedY = -5;
// bY = rY - bR;
} else if (bY > rY + rH) {
bSpeedY = 5;
// bY = rY +rH + bR;
}
bTouched = !bTouched;
}
fill (0);
rect (rX, rY, rW, rH);
for (int c = 0; c < multipleYpos[c]; c = c + 1){
fill (250);
noStroke ();
ellipse (multipleX, multipleYpos[c], bW, bW);
multipleYpos[c] = multipleYpos[c] + multipleSpeed;
}
}
}