xxxxxxxxxx
int numberOfBalls = 500;
float[] ballX = new float[numberOfBalls];
float[] ballY = new float[numberOfBalls];
float[] ballXSpeed = new float[numberOfBalls];
float[] ballYSpeed = new float[numberOfBalls];
color colors[] = new color[numberOfBalls];
int ballWidth = 3;
void setup() {
fullScreen();
smooth();
background(21);
colorMode(RGB, width, height, width, 255);//CHANGE MIN MAX OF COLOR MODE
for (int i = 0; i < numberOfBalls; i++) {
ballX[i] = random(ballWidth, width-ballWidth);
ballY[i] = random(ballWidth, height-ballWidth);
ballXSpeed[i] = random(-5, 5);
ballYSpeed[i] = random(-5, 5);
//colors[i] = new color(4, 2, 5);
}
}
void draw() {
noStroke();
fill(21, 21, 21, 2);
rect(0, 0, width, height);
fill(255);
for (int i = 0; i < numberOfBalls; i++) {
//fill(colors[i]);
fill(ballX[i], ballY[i], mouseX, 50);//CHANGED MOUSEX
ellipse(ballX[i], ballY[i], ballWidth, ballWidth);
isColliding(ballX[i], ballY[i], i);
ballX[i] += ballXSpeed[i];
ballY[i] += ballYSpeed[i];
}
}
void isColliding(float x, float y, int i) {
if (x < ballWidth/2) {
ballXSpeed[i] *= -1;
}
if (y < ballWidth/2) {
ballYSpeed[i] *= -1;
}
if (x > width-ballWidth/2) {
ballXSpeed[i] *= -1;
}
if (y > height-ballWidth/2) {
ballYSpeed[i] *= -1;
}
for (int j = 0; j < numberOfBalls; j++) {
if (j != i) {
//if (dist(ballX[j], ballY[j], x, y) < ballWidth) {
// //ballXSpeed[i] *= -1;
// //ballYSpeed[i] *= -1;
// if (ballXSpeed[i] > 0) {
// ballXSpeed[i] = abs(ballX[j] - x) * -1 / 10;
// }
// if (ballXSpeed[i] < 0) {
// ballXSpeed[i] = abs(ballX[j] - x) / 10;
// }
// if (ballYSpeed[i] > 0) {
// ballYSpeed[i] = abs(ballY[j] - x) * -1 / 10;
// }
// if (ballYSpeed[i] < 0) {
// ballYSpeed[i] = abs(ballY[j] - x) / 10;
// }
// println(dist(ballX[i], ballY[i], x, y));
//}
}
}
}