我需要制作4个垂直移动的正方形,当它们接触窗口边缘时,它们会改变方向。我可以用一个正方形做,但是我怎么用4做以避免重复循环。这必须在处理中完成
您要查找的代码看起来像这样(经过测试):
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更改为所需的正方形数量即可。要更改正方形的预设/属性,只需更改它们在setup()中的for循环内设置的值即可。它的工作方式是在随机位置生成一些随机平方,随机大小随随机恒定速度移动。但是,正方形不会与each other碰撞。如果您想知道如何使它们相互碰撞,只需在另一个问题中提出,并放心,我会在那里回答[:)]。另外,我可以看到您是初学者。我建议这组播放列表从4.0开始:processing 3 - The Coding Train。