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

标签 java arduino keyevent awtrobot rxtx

我正在使用 Arduino Uno 通过 USB 或蓝牙将(正版)SNES Controller 连接到计算机。

Arduino 使用 snespad library 捕获 Controller 的按钮按下和释放.它将按钮按下和释放作为字符进行通信(例如,“a”表示按下 A,“A”表示释放“A”)。接下来,Java 程序使用 rxtx library 监听串行输出。 .最后,Java robot使用 keyPress 模拟按键和 keyRelease .

不幸的是,这种方法有一些缺点。主要问题是键映射。我有点武断地决定哪些按钮将是哪些键盘键。

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

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

最佳答案

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

干杯

关于java - 我可以使用 Java 的 Robot 类 (Java.awt.robot) 模拟游戏 handle 按钮按下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889984/

相关文章:

java - JPQL 将 Concat 解析为 NULL

Java新手: How to use Java Agent From the Command Line for Instrumentation

java - Apache Spark 如何将函数发送到引擎盖下的其他机器

java - 编译错误: ireport with java;Attribute 'uuid' is not allowed to appear in element 'jasperReport'

带字符的Arduino开关

python - Circuit Playground Express 上传问题

android - 如何找到所有连接到路由器的esp8266

android - 抓取Android的 "multitasking"按钮

jquery - 将 e.which 插入数组不等于给定数组

javascript - isNumberKey() 不起作用