Я использую 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?