Мне нужно, чтобы 4 квадрата двигались вертикально, используя петлю - PullRequest
1 голос
/ 30 мая 2020

Мне нужно сделать 4 отдельных квадрата, которые перемещаются вертикально и, когда они касаются края окна, меняют направление. Я могу сделать это с одним квадратом, но как мне это сделать с 4, чтобы не повторять l oop. Это необходимо сделать при обработке

1 Ответ

1 голос
/ 01 июня 2020

Код, который вы ищете, выглядит следующим образом (протестирован):

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 .

...