java - 我应该在 InputListener 对象的方法内实现操作吗?

标签 java slick2d

我正在使用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/

相关文章:

java - 我想删除动词的最后两个字母并使用 StringBuilder 将其结合起来

java - java中替换xml标签或更改xml标签的值

java - 为什么我的纹理在 slick util 中显示得如此奇怪?

java - 不支持 TrueTypeFont.drawString()

java - 寻找局部最小值

java - 使用 matlab 或 java 的 144Hz 监视器的高帧率问题

java - 以编程方式访问网页

java - 按钮未按预期协调

java - 引用索引数组

java - java中如何将一个元素移动到已排序数组的底部?