在处理环境中使用delay()

时间:2013-07-14 09:52:36

标签: processing

我正在使用处理语言绘制一个随时间增长的矩形。以下代码没有给出任何输出。

void setup()
{
    size(900,900);
}
void draw()
{
    int edge=100;
    for(int i=0;i<300;i++)
    {
        delay(100);  
        edge++;      
        rect(100,100,edge,edge);
    }
}

我怀疑错误地使用了delay()函数。

3 个答案:

答案 0 :(得分:10)

这是一种“滚动你自己”的延迟方法,这种方法对大多数用途都有好处。只需更改传递给延迟方法的值即可更改时序。例如,这大约每2秒输出一次“开始”和“结束”。

void draw()
{
  System.out.println("start");
  delay(2000);
  System.out.println("end");
  delay(2000);
}

void delay(int delay)
{
  int time = millis();
  while(millis() - time <= delay);
}

答案 1 :(得分:7)

我建议使用 millis()功能滚动您自己的延迟系统。

查看this example

答案 2 :(得分:3)

通过处理,在程序流程到达draw()结束之前,屏幕不会刷新 请尝试以下方法:

 void setup()
 {
   size(900,900);
   frameRate(10);
 }
int edge = 100;
void draw()
{ 
     edge++;      
     rect(100,100,edge,edge);
}
相关问题