处理语言:任何减缓for循环执行的方法?

时间:2014-04-11 11:48:28

标签: for-loop processing

我正在学习编码,逐步完成我在处理语言上的第一本编码书。这是本书中的一个例子,我想再分析一下:

size(480, 120);
background(0);
smooth();
noStroke();

    for (int y = 0; y <= height; y += 40) {
        for (int x = 0; x <= width; x += 40) {
          fill(255, 140);
          ellipse(x, y, 40, 40);
    }
}

我想知道是否有任何方法可以将for循环执行减慢为步骤,以便在执行时我可以看到我的眼睛?我相信,在分析循环时,这对我现在和未来都会有很大的帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用函数millis()在每次循环迭代中创建暂停。 它返回自程序启动以来的时间(以毫秒为单位)。使用while循环,您可以创建在所需时间内“空闲”的循环。

编辑: 这应该是这样的:

idletime=millis()+1000;    //wait for 1 second
while(idletime>millis())
  {}

答案 1 :(得分:0)

因为draw函数重绘场景每秒30-60次而停止绘制窗口是有问题的。

所以只是为了基本理解for循环,这应该足够了:

int num = 0;

void setup() 
{
  textSize(12);
  //increased size so you can see all numbers and circles
  size(480+100, 120+100);
  background(0);
  smooth();
  noStroke();
  //stop draw function - try to delete it :)
  noLoop();  
}

void draw() { 
 //just move so I dont have to rewrite all coordinates  
 translate(50, 50);  
 //old width and height 
  for (int y = 0; y <= 120; y += 40) {
    for (int x = 0; x <= 480; x += 40) {      
      fill(255, 140);
      ellipse(x, y, 40, 40);
      text(num, x, y);
      num++;
    }
  }  
}