【问题标题】:Slick2D: Key ReleasedSlick2D:密钥已发布
【发布时间】:2014-04-11 22:54:11
【问题描述】:
Slick 的Input 类有一个isKeyPressed() 方法,根据指定的键是否被按下返回一个布尔值。我想实现一种方法来检查是否以相同的方式释放了密钥。
我考虑将KeyListener 添加到输入对象,并覆盖keyReleased() 方法。但是,我目前处理输入的方式是在我的BasicGame 的update() 方法中。通过实现上述解决方案,我在两个不同的地方分解了我的代码和处理输入,这是我想避免的。
【问题讨论】:
标签:
java
input
keylistener
slick2d
【解决方案1】:
Input 没有 keyReleased 方法,因为它是一个轮询类型的类。它仅在按键被按下时保存一个布尔值,然后在请求查看它是否被 input.isKeyPressed(VK_KEY) 按下时放弃该值。
如果您查看 Kevin Glass 在 slick trunk 中提供的 InputTest 示例,您会看到 BasicGame 和 BasicGameState 都带有一个名为 isKeyPressed/isKeyReleased 的方法。
InputTest.java Slick2D resource
这些是您正在寻找的方法,因为它们可以让您更好地控制按下或释放键时发生的情况。