2009-06-13 52 views
9

在我的游戏中,我希望能够使用右键和左键不同的功能。在Java(或其他语言)中,有什么办法可以区分这两种?如何判断哪个SHIFT键被按下?

KeyEvent类只有VK_SHIFT,它对应于左右两个Shift键。同样的,控制Alt键输入

我最关心的是有人可能能够使用两个手指同时迅速按下两个键,获得不公平的优势。我应该关心这个吗?

+5

*将shift键重新映射到j和k *不需要担心,完美无瑕的计划... – Shog9 2009-06-13 23:32:22

回答

18

我发现了一个包含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

参考文献:

Key Listener Demo and Source Code

1
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. 
0

您还可以看看jinput,一个库,可让您直接访问所有输入设备,为您提供更多的控制。如果你决定为你的游戏使用LWJGL,它已经与jinput一起。

相关问题