我正在用Java做一个基本的小游戏,我想拥有它,这样我就可以使用Hashmap来绑定键。
例如,它会像HashMap,然后我会这样做: hashmap.add(Keys.up,VK_UP);
但这就是我的问题所在,如何访问散列映射并选择当KeyListener返回按下的键时按下的键?
如果这个问题看起来令人费解,很抱歉,但我也真的很困惑。
发布于 2012-03-25 12:17:32
您可以使用map.put(key,value)
将键和值插入到哈希图中,并使用map.get(key)
根据键来检索值
您需要确保键的类覆盖了库类的hashCode()
和equals()
-它已经这样做了
发布于 2012-03-25 12:29:59
由于KeyEvent的所有键类型都是int类型,因此请使用以下散列映射:
HashMap<Integer, Boolean> keysState = new HashMap<Integer, Boolean>();
.
.
.
public void keyPressed(KeyEvent e) {
keysState.put(e.getKeyCode(), true);
}
public void keyReleased(KeyEvent e) {
keysState.put(e.getKeyCode(), false);
}
现在,您可以通过以下命令测试某个键是否被按下:
if (keysState.get(KeyEvent.VK_UP)) {
// Up key is pressed so do the desired action
}
https://stackoverflow.com/questions/9860025
复制