我想重置在草图中运行的“ for”循环,而不使用keyPressed()或mousePressed(),它应该自动发生。
当笔划将覆盖大部分画布区域或笔划超过宽度/高度时,我想重新开始绘制草图。
在上一个草图中,我设置了一个计数器,因为没有“ for”循环,所以它起作用了,但是在这个计数器中,计数器因此而无法工作。
int interval = 5 * 1000;
int time;
float cer;
float big = 14;
void setup() {
size(595, 842);
background(255);
}
void draw() {
strokeWeight(cer);
stroke(0);
noFill();
ellipse(width/2, height/2-100, 200, 200);
ellipse(width/2, height/2+100, 200, 200);
cer = cer + big;
if (cer < width) {
big = +1;
}
if (millis() - time >= interval) {
// clear background
background(255);
// reset time for next interval
time = millis();
// debug
println("=========================> tick");
}
}
答案 0 :(得分:0)
只需将cer
和big
的值恢复到初始状态,就必须在必须重新启动进程时清除背景:
float cer = 0;
float big = 14;
void draw() {
// [...]
cer = cer + big;
if (cer < width) {
big = +1;
} else {
// clear background
background(255);
// reset to initial state
cer = 0;
big = 14;
}
// [...]
}
请注意,big = +1;
与big = 1;
相同。我只是将1分配给big
。
可能您正在搜索big += 1;
,它将使big
增加1:
float cer = 0;
float big = 0;
void draw() {
// [...]
cer = cer + big;
println(cer, big);
if (cer < width) {
big += 1;
} else {
background(255);
cer = 0;
big = 0;
}
// [...]
}