处理代码不起作用

时间:2013-03-30 13:08:55

标签: boolean processing collision rectangles

我今天开始使用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; } }}

1 个答案:

答案 0 :(得分:0)

为什么else if?它的编写方式,只会检查鼠标是否在visible[i] == false之上。它们都是可见的,因此它永远不会被执行。

另外,要查看效果,您必须在绘制方法的顶部调用background(0);。否则,您永远不会清除屏幕以查看结果。

您还应该考虑清理缩进和大括号{},以确保以一致的方式格式化代码。这样可以更容易阅读。