Escribí un bot para controlar el juego de carreras usando Java Robot. El bot funciona bien para Need For Speed Underground a excepción de la tecla "Abajo" (las teclas Arriba, Izquierda, Derecha funcionan muy bien). Sin embargo, mi bot no puede controlar Need For Speed Most Wanted.El juego "Need for Speed Most Wanted" no puede ser controlado por la clase Java Robot
El bot funciona bien, pero el juego no acepta los eventos clave simulados. Realicé algunas búsquedas y descubrí que el juego está basado en DirectX. En DirectX, los eventos de teclado/mouse son especiales. Parece que el juego "pregunta" directamente al teclado, no a través de Windows. Y pruebo mi programa en CS, y encontré que funciona bastante bien.
Programa en Windows 7, usando Eclipse y Java 1.6. Entonces quiero preguntar ¿por qué no acepta Need for Speed Most Wanted los eventos clave simulados y cómo resolver este programa? Gracias.
Escribí un programa de prueba para aceptar los eventos clave del bot. Los resultados muestran que keyPressed, keyReleased y keyTyped se activan. No entiendo tu punto. Y gracias por tu consejo. Yo recuerdo eso.^_^ – suiyemin
Mi punto fue que dijiste que la tecla A-Z funcionaba. Bueno, estas pulsaciones de tecla generarán un evento KeyType ya que son caracteres que se pueden visualizar. Por otro lado, las teclas de flecha no generan caracteres visualizables, por lo que incluso si se genera el evento keyTyped, contendrá un valor indefinido para el carácter escrito clave. Tal vez esto esté causando un problema en tu código. Si observa que mi Robot solo rastrea los eventos keyPressed y keyReleased, no se preocupe por los eventos KeyTyped. No sé si hace la diferencia o no, pero tal vez puedas ignorar los eventos Key key. – camickr
Ese es un buen punto. Gracias. – suiyemin