マウス アクションを使用する Java ゲームをコーディングしています。メインクラスにポイントmsc
があります-マウスを押すたびに変更され(0, 0)
、マウスを離すたびに設定されます。ボタンについては、msc
が長方形内にあるかどうかをチェックし、そうであれば を呼び出しますclick
。
ボタンの 1 つは、ブール値を切り替えることになっています。ただし、クリックすると、呼び出される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;
}
}
問題は、ボタンをクリックするたびに、ブール値が非常に速く前後に切り替わることです。私がそれを保持すると、それはただ急速かつ継続的に切り替わります. 1回クリックすると1回切り替わるようにしたいと思います。