我正在使用MouseOverArea
创建一个按钮。经过一些试验和错误后,我意识到我可以覆盖InputListener
中的方法,以便在通知输入事件时执行特定操作。
例如,当光标位于组件上时,按下鼠标左键时执行操作。
@Override
public void mousePressed(int button, int mx, int my) {
if (isMouseOver() && button == Input.MOUSE_LEFT_BUTTON) {
// Some magic happens
}
}
然而,由于没有Game对象,我无法做更改当前游戏状态的事情。我知道有很多方法可以解决这个问题,但我想知道Slick的方法是什么。
这些方法适合这种行为吗?
答案 0 :(得分:1)
修改游戏状态的一种方法是使用布尔状态;哪个是保持游戏或玩家状态的布尔变量。例如:
boolean isMovingUp, isMovingLeft, isMovingRight, isMovingDown;
然后您可以将这些设置为true / false,具体取决于发生的鼠标或键盘事件,然后您的游戏类会读取这些变量,如下所示:
if (isMovingUp) {
// do something
isMovingUp = !isMovingUp;
}
希望有所帮助!