我有一个代码,在鼠标按下时,会显示一个围绕圆圈移动的圆圈。
我希望这会自动发生,即。
帧号图1显示了圆圈号。 1 框架号图2显示了圆圈号。 2 ... 框架号图8显示了圆圈号。 8 框架号图9显示了圆圈号。 1
非常感谢。
这是我的代码。
int value = 0;
void setup () {
size (600, 600);
}
void draw () {
if (value == 0) {
background(255, 255, 255);
} else if (value == 1) {
background(255, 255, 255);
fill (0);
ellipse (300, 190, 20, 20);//1
} else if (value == 2) {
background(255, 255, 255);
fill (0);
ellipse (378, 222, 20, 20);
} else if (value == 3) {
background(255, 255, 255);
fill (0);
ellipse (410, 300, 20, 20);
} else if (value == 4) {
background(255, 255, 255);
fill (0);
ellipse (378, 378, 20, 20);
} else if (value == 5) {
background(255, 255, 255);
fill (0);
ellipse (300, 410, 20, 20);
} else if (value == 6) {
background(255, 255, 255);
fill (0);
ellipse (222, 378, 20, 20);
} else if (value == 7) {
background(255, 255, 255);
fill (0);
ellipse (190, 300, 20, 20);
} else if (value == 8) {
background(255, 255, 255);
fill (0);
ellipse (222, 222, 20, 20); //8 circles
}
}
void mousePressed() {
if (mouseButton == LEFT) {
value = value + 1;
} else if (mouseButton == RIGHT) {
value = value - 1;
}
if (value > 8) {
value = 1;
}
if (value < 1) {
value = 8;
}
}
答案 0 :(得分:1)
这是循环许多不同帧的方法:
int loopLength = 8;
void setup () {
size (600, 600);
}
void draw () {
background(255, 255, 255);
fill (0);
switch (frameCount % loopLength) {
case 0:
ellipse (300, 190, 20, 20);
break;
case 1:
ellipse (378, 222, 20, 20);
break;
case 2:
ellipse (410, 300, 20, 20);
break;
case 3:
ellipse (378, 378, 20, 20);
break;
case 4:
ellipse (300, 410, 20, 20);
break;
case 5:
ellipse (222, 378, 20, 20);
break;
case 6:
ellipse (190, 300, 20, 20);
break;
case 7:
ellipse (222, 222, 20, 20);
break;
}
}
每个帧的公共代码(调用背景和填充)发生在switch()之前。它运行的方式是每一帧。
你可以使用很多if()语句而不是switch,但这可能看起来更干净。
使用开关时,您不需要包含每个案例。如果您想要空白帧,则可以删除一个或多个案例。
如果您的循环长度为8,并且您使用的范围超出0 - 7范围(例如33),那么这些情况将无法运行。
每个案件必须以休息结束。如果缺少break,则还会评估下一个案例的代码。