MouseOverArea
を使用してボタンを作成しています。試行錯誤の末、InputListener
のメソッドをオーバーライドして、入力イベントが通知されたときに特定のアクションを実行できることに気付きました。InputListenerオブジェクトのメソッド内でアクションを実装する必要がありますか?
たとえば、カーソルがコンポーネント上にあるときにマウスの左ボタンを押したときの操作を行います。
@Override
public void mousePressed(int button, int mx, int my) {
if (isMouseOver() && button == Input.MOUSE_LEFT_BUTTON) {
// Some magic happens
}
}
しかし、私は現在ゲームの状態を変更するようなことはできません。なぜなら、ゲームオブジェクトはまわりにはありません。私はこの問題を解決する多くの方法があることを知っていますが、私はこれを行うためのスリックな方法が何であるか知りたいと思います。
これらの方法は、このような動作に適していますか?
お返事ありがとうございます。しかし、メソッド内でそのようなロジックを実装すると、特定の入力イベントが発生した後にのみこれらのフラグが更新されることを意味します。アクションを1回だけ実行したい場合はどうすればよいですか?アクションが終了したらフラグをリセットすることができますが、コンポーネント自体の外でそのようなことをするのは変です。 –