Могу ли я имитировать нажатия кнопок геймпада с помощью класса Java Robot (Java.awt.robot )?

Я использую Arduino Uno для подключения (подлинного )контроллера SNES к компьютеру через USB или Bluetooth.

Arduino фиксирует нажатия и отпускания кнопок контроллера с помощью библиотеки snespad . Он передает нажатия и отпускания кнопок в виде символов (, например. 'a' для нажатия A, 'A' для отпускания 'A' ). Затем программа на Java прослушивает последовательный вывод, используя библиотеку rxtx . Наконец, Java-робот имитирует нажатия клавиш, используя keyPress и keyRelease .

К сожалению, у этого подхода есть несколько недостатков. Основная проблема заключается в сопоставлении клавиш. Я как бы произвольно решил, какие кнопки будут какими клавишами клавиатуры.

Java не имеет геймпада KeyEvents . Когда я говорю «KeyEvent геймпада», я имею в виду что-то вроде того, что есть в Android SDK :http://developer.android.com/reference/android/view/KeyEvent.html(. ctrl+f "геймпад" или "кнопка".)

Мой вопрос: есть ли способ имитировать нажатия кнопок игровой панели вместо нажатий клавиш с использованием класса роботов Java?

6
задан keattsd 9 August 2012 в 19:28
поделиться