0

を使ってボタンを作っていますMouseOverArea。試行錯誤の結果、メソッドをオーバーライドしてInputListener、入力イベントが通知されたときに特定のアクションを実行できることに気付きました。

たとえば、カーソルがコンポーネント上にあるときにマウスの左ボタンが押されたときに何かを行います。

@Override
public void mousePressed(int button, int mx, int my) {
    if (isMouseOver() && button == Input.MOUSE_LEFT_BUTTON) {
        // Some magic happens
    }
}

ただし、ゲームオブジェクトが周りにないため、現在のゲームの状態を変更するなどのことはできません。この問題を解決するには多くの方法があることは知っていますが、これを行う Slick の方法を知りたいです。

これらのメソッドはそのような動作に適していますか?

4

1 に答える 1

1

ゲームの状態を変更する 1 つの方法は、ブール値の状態を使用することです。これは、ゲームまたはプレーヤーの状態を保持するブール変数です。例えば:

boolean isMovingUp, isMovingLeft, isMovingRight, isMovingDown;

次に、発生するマウスまたはキーボード イベントに応じてこれらを true/false に設定し、ゲーム クラスでこれらの変数を次のように読み取ります。

if (isMovingUp) {
  // do something
  isMovingUp = !isMovingUp;
}

それが役立つことを願っています!

于 2012-03-08T15:48:21.180 に答える