在我的窗口中有一个圆圈。我已经实现了void MouseClicked()
方法以使鼠标单击事件生效。这意味着只需在圆圈内单击即可更改圆圈的颜色并执行相应的操作。
但问题是无论我点击哪里(甚至在圆圈外),它都会改变圆圈的颜色。所以我理解mouseClicked()
方法不稳定。我该如何解决这个问题?
我处理的代码:
int colorValue = 0;
void setup() {
size(450, 255);
background(204);
}
void draw() {
fill(colorValue);
ellipse(56, 46, 55, 55);
}
void mouseClicked() {
if (colorValue == 0) {
colorValue = 255;
} else {
colorValue = 0;
}
}
答案 0 :(得分:1)
您没有检查鼠标是否在圆圈中。您可以使用dist()
函数来帮助:
int colorValue = 0;
float circleX = 56;
float circleY = 46;
float circleR = 55;
void setup() {
size(450, 255);
background(204);
ellipseMode(RADIUS);
}
void draw() {
fill(colorValue);
ellipse(circleX, circleY, circleR, circleR);
}
void mouseClicked() {
if(dist(mouseX, mouseY, circleX, circleY) < circleR){
if (colorValue == 0) {
colorValue = 255;
} else {
colorValue = 0;
}
}
}