这是一个简单的处理程序,它只是在最后四帧中绘制了四个圆圈(我的图形卡的刷新率是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++;
}
答案 0 :(得分:0)
考虑每次调用draw()
函数时会发生什么:
background(0)
以清除旧框架。第61帧会发生什么?你将清除旧框架(清除你画出的圆圈),然后不画任何东西。因此,每个圆圈显示1/60秒,这可能是您无法看到的。
要解决您的问题,您需要考虑每帧的内容。考虑删除对background()
的调用,以便不清除旧帧,或者每帧可能重绘旧圈。这取决于你想要草图的确切内容。
附注:您无需创建自己的counter
变量。 Processing提供了一个frameCount
变量来完成这个任务。更多信息可以在the reference找到。