循环处理动画

时间:2017-06-06 01:58:49

标签: animation processing

所以我的第一天使用处理,我需要一些帮助才能开始这是我的代码,我正在做选择排序:

int[] numbers; // Declare array
int currentmin;
int exchange=0;
void setup() {
  frameRate(0.1);
  size(500,500);



numbers = new int[10]; // Create array with 10 cells
   background(105);
  for (int i = 0; i < numbers.length; i++) { // random numbers from 1 to 100
     int r = int(random(1,100));  // create  random numbers

  for (int j=0; j<numbers.length; j++) { //make sure not duplications
      if(numbers[j]==r)
        {r=r+1;}
  }
   numbers[i]=r; //fill array with random numbers
  println(r);   
}
 fill(255,0,0);
for (int i = 0; i < numbers.length; i++) { //draw rectangles
  rect(i*40+10,400 ,35, -numbers[i]);

} 
 for (int j=0; j < numbers.length; j++){ //set pivot number


     currentmin=numbers[j];
 for (int i=j+1; i < numbers.length; i++){  //find lowest number in array

   if (numbers[i] < currentmin) {
        currentmin = numbers[i];
    }
 }
  for ( int i=j; i<numbers.length;i++){ //swap pivot with lowest number
    if ( numbers[i]==currentmin){
    exchange=numbers[j];
    numbers[j]=numbers[i];
    numbers[i]=exchange;
  //here
    } 
   }
 }

}

void draw() { 

   background(105);
for (int z = 0; z < numbers.length; z++) {
  rect(z*40+10,400 ,35, -numbers[z]);

    }
}

正如你可以看到我在哪里有评论我试图让事情动画,并看到矩形在第一个循环中的每次迭代改变位置,但它不工作......任何帮助?我试着调用draw();绝望但它没有用......反正我可以得到帮助吗?

1 个答案:

答案 0 :(得分:1)

这不是一个简单的动画来执行。你应该从简单的事情开始。

但是要回答你的问题,你不会把你的动画放在for循环中。相反,您需要进行此操作,以便draw()函数绘制动画的单个帧。处理每秒自动调用draw()函数60次,因此通过更改每次绘制的内容,您可以创建动画。

无耻的自我推销:我写了一篇关于在Processing available here中创建动画的教程。