2012-03-25 67 views
1

我用Java做一个基本的小游戏,我想拥有它,这样我可以使用包含HashMap的结合键..如何使用HashMap进行键绑定?

EG-它会像HashMap的 ,然后我会做: hashmap.add (Keys.up,VK_UP);

但这是我遇到我的问题,我如何访问hashmap,并选择KeyListener返回按键时按哪些键?

很抱歉,如果这个问题似乎令人费解,但我真的很困惑太..

+0

你要得到相应的HashMap中的关键价值?你能给出一个样本输入/输出吗? – 2012-03-25 12:16:19

回答

1

由于所有主要类型为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 
} 
+0

由于get方法返回的值为空值,因此如果该键未完全被按下,将会抛出运行时异常。为了这个工作,需要使用指向“false”值的所有可能的键来初始化HashMap。 – 2012-03-25 12:50:11

+0

@Alonso是对的。确保地图使用适当的键码进行初始化(所有值都为false) – giorashc 2012-03-25 13:28:20

相关问题