我正在使用MouseOverArea
制作一个按钮。经过一番尝试和错误后,我意识到我可以重写 InputListener
中的方法,以便在收到输入事件通知时执行特定操作。
例如,当光标位于组件上方时按下鼠标左键时执行操作。
@Override
public void mousePressed(int button, int mx, int my) {
if (isMouseOver() && button == Input.MOUSE_LEFT_BUTTON) {
// Some magic happens
}
}
但是,我将无法执行更改当前游戏状态之类的操作,因为周围没有游戏对象。我知道有很多方法可以解决这个问题,但我想知道什么是 Slick 方法。
这些方法适合这种行为吗?
最佳答案
修改游戏状态的一种方法是使用 boolean 状态;这是保存游戏或玩家状态的 boolean 变量。例如:
boolean isMovingUp, isMovingLeft, isMovingRight, isMovingDown;
然后,您可以根据发生的鼠标或键盘事件将这些设置为 true/false,然后您的游戏类读取这些变量,如下所示:
if (isMovingUp) {
// do something
isMovingUp = !isMovingUp;
}
希望有帮助!
关于java - 我应该在 InputListener 对象的方法内实现操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620426/