0

我正在使用MouseOverArea. InputListener经过一些试验和错误,我意识到我可以在通知输入事件时覆盖其中的方法来执行特定操作。

例如,当光标在组件上时按下鼠标左键时执行操作。

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

但是,我将无法执行更改当前游戏状态之类的操作,因为周围没有 Game 对象。我知道有很多方法可以解决这个问题,但我想知道解决这个问题的 Slick 方法是什么。

这些方法是否适合这种行为?

4

1 回答 1

1

修改游戏状态的一种方法是使用布尔状态;这是保存游戏或玩家状态的布尔变量。例如:

boolean isMovingUp, isMovingLeft, isMovingRight, isMovingDown;

然后,您可以根据发生的鼠标或键盘事件将这些设置为真/假,然后您的游戏类读取这些变量,如下所示:

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

希望有帮助!

于 2012-03-08T15:48:21.180 回答