我今天开始使用Processing进行编程,并编写了一个创建10个随机矩形的程序 现在我喜欢让它们在鼠标悬停时消失,但我的实际代码无法正常工作
我会嘲笑一些蠢货......
import java.awt.Rectangle;
Rectangle rect[] = new Rectangle[10];
int xpos[] = new int[10];
int ypos[] = new int[10];
int size = 25;
boolean visible[] = new boolean[10];
void setup()
{
size(640,480);
frameRate(60);
smooth();
background(0);
stroke(255);
fill(255);
textAlign(CENTER);
textSize(200);
text("Catch", width/2, 280);
textSize(100);
text("them", width/2, 380);
// 10 Random positions for the rectangles
for (int i=0; i < 10; i++) {
xpos[i] = int(random (615));
ypos[i] = int(random (455));
visible[i] = true;
}
for (int i=0; i < 10; i++) {
rect[i] = new Rectangle(xpos[i],ypos[i],size,size);
}
}
void draw()
{
for (int i=0; i < 10; i++) {
if (visible[i] == true){
fill(255,0,0);
rect(rect[i].x,rect[i].y,rect[i].width,rect[i].height);}
else if (rect[i].contains(mouseX,mouseY)){
visible[i] = false; }
}}
答案 0 :(得分:0)
为什么else if
?它的编写方式,只会检查鼠标是否在visible[i] == false
之上。它们都是可见的,因此它永远不会被执行。
另外,要查看效果,您必须在绘制方法的顶部调用background(0);
。否则,您永远不会清除屏幕以查看结果。
您还应该考虑清理缩进和大括号{},以确保以一致的方式格式化代码。这样可以更容易阅读。