如何判断哪个SHIFT键被按下?
问题描述:
在我的游戏中,我希望能够使用右键和左键不同的功能。在Java(或其他语言)中,有什么办法可以区分这两种?如何判断哪个SHIFT键被按下?
KeyEvent类只有VK_SHIFT,它对应于左右两个Shift键。同样的,控制,Alt键,输入等
我最关心的是有人可能能够使用两个手指同时迅速按下两个键,获得不公平的优势。我应该关心这个吗?
答
我发现了一个包含Java WebStart示例和源代码的Java教程。貌似赢家是KeyEvent.getKeyLocation()
- KeyEvent.KEY_LOCATION_STANDARD
- KeyEvent.KEY_LOCATION_LEFT
- KeyEvent.KEY_LOCATION_RIGHT
- KeyEvent.KEY_LOCATION_NUMPAD
- KeyEvent.KEY_LOCATION_UNKNOWN
参考文献:
答
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)
方法:
int getKeyLocation()
返回产生此按键事件的键的位置。
public static final int KEY_LOCATION_LEFT
A constant indicating that the key pressed or released is in the left key location (there is more than one possible location for this key). Example: the left shift key.
答
您还可以看看jinput,一个库,可让您直接访问所有输入设备,为您提供更多的控制。如果你决定为你的游戏使用LWJGL,它已经与jinput一起。
*将shift键重新映射到j和k *不需要担心,完美无瑕的计划... – Shog9 2009-06-13 23:32:22