我可以使用Java的Robot类(Java.awt.robot)模拟游戏手柄按钮按下吗?

kea*_*tsd 6 java arduino rxtx keyevent awtrobot

我正在使用Arduino Uno通过USB或蓝牙将(真正的)SNES控制器连接到计算机.

Arduino使用snespad库捕获控制器的按钮按下和释放.它将按钮按下和释放作为字符进行通信(例如,用于按A的'a',用于释放'A'的'A').接下来,Java程序使用rxtx库监听串行输出.最后,Java机器人使用keyPresskeyRelease模拟按键.

不幸的是,这种方法有一些缺点.主要问题是关键映射.我有点随意决定哪些键盘是键盘键.

Java似乎没有任何游戏手柄KeyEvents.当我说"游戏键盘KeyEvent"时,我指的是类似于Android SDK的东西:http://developer.android.com/reference/android/view/KeyEvent.html(ctrl + f"游戏手柄"或"按钮" .)

我的问题是,有没有办法模拟游戏手柄按钮按下而不是使用Java的机器人类按键?

caf*_*991 0

在 JAVA 中使用机器人类

您可以通过以下方式创建虚拟按键/释放...

Robot robo=new Robot();
robo.keyPress(KeyEvent.VK_A);
//don't forget to release it else you'll land up in infinite loop
robo.KeyRelease(KeyEvent.VK_A);
Run Code Online (Sandbox Code Playgroud)

干杯