float ballPosY[] = new float[3]; float ballPosX[] = new float[3]; float velocities[] = new float[3]; float lastPositions[] = new float[3]; PVector barPosition; float velocityY = 0, gravity = 0.2; void setup () { size(500, 500); barPosition = new PVector(width/2, 400); ballPosX[0] = 100; ballPosX[1] = 200; ballPosX[2] = 300; for (int i = 0; i < ballPosY.length; i++) { ballPosY[i] = random(0, 150); } } void draw() { background(0); fill(255); for (int i = 0; i < ballPosY.length; i++) { ellipse(ballPosX[i], ballPosY[i], 50, 50); } rectMode(CENTER); rect(mouseX, barPosition.y, 70, 20); moveEllipses(); checkCollision(); } void checkCollision() { for (int i = 0; i < ballPosX.length; i++) { if (abs(mouseX - ballPosX[i]) <= 30 ) { if (ballPosY[i] > 500) { } else if (ballPosY[i] >= 400) { ballPosY[i] = 400; velocities[i] *= -1; } } } } void moveEllipses() { for (int i = 0; i< ballPosY.length; i++) { velocities[i] += gravity; ballPosY[i] += velocities[i]; } }