我正在编写一个使用鼠标操作的 Java 游戏。我在我的主课上有一个观点msc
——每当我按下鼠标时它就会改变,(0, 0)
每当我释放鼠标时它就会被设置为。对于按钮,他们检查是否msc
在其矩形内,如果是,则调用click
.
其中一个按钮应该切换布尔值;但是,当我单击它时,它会非常快速地切换真假,因为msc
每次paintComponent
调用都会更新。
这是按钮单击方法的代码:
if (button.contains(Screen.msc)) {
beenClicked = true;
this.width = this.width - 2;
this.height = this.height - 2;
this.x = this.x + 1;
this.y = this.y + 1;
g.setColor(currColor);
textColor = Color.YELLOW;
}
但这不是我认为的问题所在。这是更改的代码msc
:
public void mouseReleased(MouseEvent e) {
Screen.msc = new Point(0, 0);
}
public void mousePressed(MouseEvent e) {
Screen.msc = new Point((e.getX()) - ((Frame.size.width - Screen.myWidth) / 2), e.getY() - ((Frame.size.height - (Screen.myHeight)) - (Frame.size.width - Screen.myWidth) / 2));
}
以及单击特定切换按钮时发生的情况的代码:
if (toggleToolTips.clicked()) {
if (Screen.canDrawTooltip) {
Screen.canDrawTooltip = false;
} else if(!Screen.canDrawTooltip){
Screen.canDrawTooltip = true;
}
}
问题是每次我点击按钮时,布尔值都会快速来回切换。当我握住它时,它会快速而不断地切换。我想这样做,以便我单击一次并切换一次。