Код, который вы ищете, выглядит следующим образом (протестирован):
int x[] = new int[4];
int y[] = new int[x.length];
int s[] = new int[x.length];
int vx[] = new int[x.length];
int vy[] = new int[x.length];
void setup(){
size(400, 400);
for(int i = 0; i < x.length; i++){
x[i] = round(random(width) - s[i]);
y[i] = round(random(height) - s[i]);
s[i] = round(random(90));
vx[i] = round(random(-6, 6));
vy[i] = round(random(-6, 6));
}
}
void draw(){
background(0);
for(int i = 0; i < x.length; i++){
rect(x[i], y[i], s[i], s[i]);
x[i] += vx[i];
y[i] += vy[i];
if(vx[i] + x[i] > width - s[i] / 2 || vx[i] + x[i] < 0 + s[i] / 2) vx[i] *= -1;
if(vy[i] + y[i] > height - s[i] / 2 || vy[i] + y[i] < 0 + s[i] / 2) vy[i] *= -1;
}
}
Чтобы добавить больше квадратов, просто измените число 4 в первой строке на нужное количество квадратов. Чтобы изменить предустановки / свойства квадратов, просто измените то, что они установлены внутри for l oop в setup (). Это работает так: он генерирует несколько случайных квадратов в случайных положениях со случайными размерами, движущихся со случайными постоянными скоростями. квадраты, однако, не сталкиваются друг с другом . Если вы хотите знать, как заставить их столкнуться друг с другом, просто задайте этот вопрос в другом вопросе и будьте уверены, я буду там, чтобы ответить [:)]. Кроме того, я вижу, что вы новичок в процессинге. Я рекомендую этот набор списков воспроизведения, начиная с 4.0: обработка 3 - The Coding Train .