2012-08-09 3 views
6

Ich benutze ein Arduino Uno, um einen (echten) SNES-Controller über USB oder Bluetooth mit einem Computer zu verbinden.Kann ich Gamepad-Tastendrücke mit Java's Robot-Klasse (Java.awt.robot) simulieren?

Der Arduino erfasst die Tastenbetätigungen des Controllers und gibt diese mit der snespad library aus. Es kommuniziert Tastenbetätigungen und gibt sie als Zeichen frei (z.B. 'a' zum Drücken von A, 'A' zum Freigeben von 'A'). Als nächstes hört ein Java-Programm die serielle Ausgabe unter Verwendung der rxtx library. Schließlich simuliert eine Java robot Tastenbetätigungen unter Verwendung der keyPress und keyRelease.

Leider hat dieser Ansatz ein paar Nachteile. Das Hauptproblem ist die Schlüsselzuordnung. Ich entschied irgendwie willkürlich, welche Tasten welche Tastaturtasten wären.

Java scheint kein Gamepad zu haben KeyEvents. Wenn ich "Game Pad KeyEvent" sage, meine ich etwas wie das, was das Android SDK hat: http://developer.android.com/reference/android/view/KeyEvent.html (ctrl + f "game pad" oder "button".)

Meine Frage ist, gibt es eine Möglichkeit, Gamepad zu simulieren Tastenbetätigungen statt Tastenanschläge mit Javas Roboterklasse?

+0

Gibt es einen Grund, dass Sie nicht einfach drücken cont rol und 'f' mit dem Roboter? –

+0

Entschuldigung. Ich sagte, wenn Sie auf dieser Webseite nach "Game Pad" oder "Button" suchen, finden Sie die Schaltflächen im Lieferumfang des Android SDK. – keattsd

Antwort

0

der Roboter Klasse in Java

verwenden, können Sie erstellen virtuelle Tastenanschläge/releases in der folgenden Art und Weise ...

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

prost

0

sollten Sie in der Lage sein, meine expierience leicht von der Gamepad-Tasten sind auf Tastatur Tasten zugeordnet das einzige Mapping ich weiß es ich, j, k, l gehe zum Umschauen und w, a, s, d gehen umher zu bewegen

Verwandte Themen