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

时间:2012-08-09 18:46:23

标签: java arduino keyevent awtrobot rxtx

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

在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);

欢呼声

答案 1 :(得分:0)

你应该可以轻松地从我的expierience游戏手柄按钮被映射到键盘按钮我知道它唯一的映射我,j,k,我去看看周围和w,a,s,d去移动< / p>