2009-06-13 81 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一起。

相關問題