我需要使用一个循环使4个正方形垂直移动

问题描述 投票:0回答:1

我需要制作4个垂直移动的正方形,当它们接触窗口边缘时,它们会改变方向。我可以用一个正方形做,但是我怎么用4做以避免重复循环。这必须在处理中完成

loops processing
1个回答
0
投票

您要查找的代码看起来像这样(经过测试):

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

© www.soinside.com 2019 - 2024. All rights reserved.