2012-08-09 51 views
6

Estoy usando un Arduino Uno para conectar un controlador SNES (genuino) a una computadora a través de USB o Bluetooth.¿Puedo simular pulsaciones de botones de juegos con la clase Robot de Java (Java.awt.robot)?

El Arduino captura las pulsaciones del botón del controlador y las liberaciones usando el snespad library. Comunica las pulsaciones de los botones y las liberaciones como caracteres (por ejemplo, 'a' para presionar A, 'A' para liberar 'A'). A continuación, un programa Java escucha la salida serial usando el rxtx library. Finalmente, un Java robot simula las pulsaciones de teclas usando keyPress y keyRelease.

Desafortunadamente, este enfoque tiene algunos inconvenientes. El problema principal es el mapeo de claves. De alguna manera decidí arbitrariamente qué botones serían las teclas del teclado.

Java no parece tener ningún pad de juegos KeyEvents. Cuando digo "game pad KeyEvent", me refiero a algo parecido a lo que tiene el SDK de Android: http://developer.android.com/reference/android/view/KeyEvent.html (ctrl + f "game pad" o "botón").

Mi pregunta es, ¿hay alguna manera de simular juegos? pulsa el botón en lugar de presionar las teclas con la clase de robot de Java?

+0

¿Hay alguna razón por la que no puedas presionar cont rol y 'f' usando el Robot? –

+0

Lo siento. Estaba diciendo que si busca "game pad" o "button" en esa página web, encontrará los botones incluidos en el SDK de Android. – keattsd

Respuesta

0

Utilización de la clase ROBOT EN JAVA

Puede crear las pulsaciones de teclas virtuales/comunicados de la siguiente manera ...

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

aplausos

0

Usted debe ser capaz fácilmente de mi expierience la los botones del gamepad están mapeados a los botones del teclado, el único mapeo lo conozco i, j, k, l voy a mirar alrededor yw, a, s, d voy a moverme

Cuestiones relacionadas