【问题标题】:How to tell which SHIFT key was pressed?如何判断按下了哪个 SHIFT 键?
【发布时间】:2010-11-02 18:26:49
【问题描述】:

在我的游戏中,我希望能够使用左右 shift 键来执行不同的功能。在 Java(或其他语言)中,有什么方法可以区分这两者吗?

KeyEvent类只有VK_SHIFT,对应左右shift键。与 ControlAltEnter 等相同。

我主要担心有人可能会用两根手指同时快速按下两个键,从而获得不公平的优势。我应该担心这个吗?

【问题讨论】:

  • 将 shift 键重新映射到 j 和 k 不用担心,完美的计划...
  • 如果语言不提供这种功能(如 java 那样),它将需要操作系统特定的扭曲......
  • 请指定您使用的SDK/API。

标签: java keyboard


【解决方案1】:

我找到了一个包含 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

【讨论】:

    【解决方案2】:
    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.
    

    【讨论】:

      【解决方案3】:

      您还可以查看 jinput,这是一个库,可让您直接访问所有输入设备,从而获得更多控制权。如果您决定在游戏中使用 LWJGL,那么它已经带有 jinput。

      【讨论】:

        猜你喜欢
        • 2015-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多