2012-08-09 21 views
6

Używam Arduino Uno do podłączenia (oryginalnego) kontrolera SNES do komputera przez USB lub Bluetooth.Czy mogę symulować naciśnięcia przycisków na konsoli gier z klasą Java Robot (Java.awt.robot)?

Arduino przechwytuje przycisk sterownika i zwalnia za pomocą snespad library. Komunikuje on naciśnięcia przycisków i wydania jako znaki (np. "A" dla naciśnięcia A, "A" dla zwolnienia "A"). Następnie program Java nasłuchuje wyjścia szeregowego, korzystając z rxtx library. Na koniec, Java robot symuluje naciśnięcia przycisków przy użyciu keyPress i keyRelease.

Niestety, takie podejście ma kilka wad. Głównym problemem jest mapowanie kluczowe. Dowolnie arbitralnie zdecydowałem, które przyciski będą klawiszami klawiatury.

Java nie ma żadnej konsoli do gier KeyEvents. Kiedy mówię "Game Pad KeyEvent", mam na myśli coś takiego, jak Android SDK: http://developer.android.com/reference/android/view/KeyEvent.html (ctrl + f "game pad" lub "button".)

Moje pytanie brzmi, czy istnieje sposób na symulowanie konsoli do gier naciska przycisk zamiast klawiszy za pomocą klasy robotów Java?

+0

Czy istnieje powód, dla którego nie można po prostu naciskać cont rol i "f" za pomocą robota? –

+0

Przepraszamy. Mówiłem, że jeśli szukasz "konsoli do gier" lub "przycisku" na tej stronie, znajdziesz przyciski z Androidem SDK. – keattsd

Odpowiedz

0

użyciu klasy robot JAVA

Można tworzyć wirtualne znakom/uwolnienia w następujący sposób ...

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

okrzyki

0

Powinieneś być w stanie łatwo z mojego expierience Przyciski gamepada są odwzorowane na przyciski klawiatury Jedyne mapowanie wiem, że ja, j, k, idę się rozglądać i w, a, s, d idę do poruszania się