这是一个简单的处理程序,它所做的就是在最后四帧中绘制四个圆圈(我的图形卡的刷新率是60Hz,所以它每秒绘制一次)
但有时由于某种原因,它是跳帧,所以我没有看到所有四个圆圈。为什么这样做,我该怎么做才能使它不跳帧。
int counter = 1;
void setup(){
fullScreen();
background(0);
fill(255);
}
void draw(){
background(0);
if(counter == 57){
ellipse(383,383,100,100);
}
else if(counter == 58){
ellipse(583,383,100,100);
}
else if(counter == 59){
ellipse(783,383,100,100);
}
else if(counter == 60){
ellipse(983,383,100,100);
counter = 0;
}
counter++;
}
想想每次调用draw()
函数时会发生什么:
background(0)
清除旧框架。第61帧会发生什么?你将清除旧框架(清除你画出的圆圈),然后不画任何东西。因此,每个圆圈显示1/60秒,这可能是您无法看到的。
要解决您的问题,您需要考虑每帧的内容。考虑摆脱对background()
的调用,以便不清除旧帧,或者每帧可能重绘旧圈。这取决于你想要草图的确切内容。
附注:您不需要创建自己的counter
变量。 Processing提供了一个frameCount
变量来完成这个。更多信息可以在the reference找到。