Hay forma de comprobar la pulsación de teclas en un determinado momento?

Iniciado por PabloPbl, 19 Julio 2016, 23:24 PM

0 Miembros y 1 Visitante están viendo este tema.

PabloPbl

En otros lenguajes de programación se puede hacer.

Por ejemplo, así se vería en Unity(C#):

while(true) {
    if (Input.GetKeyDown(KeyCode.W)){x+=1}
}

Un ciclo que se ejecuta a velocidad de maquina y en cada ejecución la función se fija si tal tecla esta presionada o no, esto me vendría de perlas para un juego que haga una comprobación cada frame antes de hacer algo, y no estar usando el KeyListener de Java, ya que se ejecuta a otros velocidades, y me hace desastres dentro del juego.
Habra alguna forma de regular la velocidad de chequeo de teclas o alguna función para saber si hay alguna tecla presionada o no?

Muchas gracias desde ya.




RESUMIENDO:
QUIERO LOGRAR HACER ALGO COMO ESTO:
Código (java) [Seleccionar]
if(keypressed("W") == true){
      //CODE
}


Sin tener que usar el KeyListener.

crack81

Personalmente para hacer juegos no me gusta mucho trabajar con las librerias estandar de java has probado con alguna de tercero que este enfocada a video juegos?

Bueno te recomiendo revisar el binding que hay de la libreria sfml
http://pdinklag.de/jsfml/

Tambien te dejo su wiki con ejemplos de uso
https://github.com/pdinklag/JSFML/wiki/Windows

Saludos.... :silbar:
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

ivancea96

Si es un juego con interfaz gráfica, lasclases que uses para ella tendrán eventos de teclas. Puedes marcar en un HashTable<Tecla, boolean> las teclas en los eventos, y así saber en cualquier momento si están presionadas o no.

PabloPbl

Cita de: crack81 en 20 Julio 2016, 00:02 AM
Personalmente para hacer juegos no me gusta mucho trabajar con las librerias estandar de java has probado con alguna de tercero que este enfocada a video juegos?

Bueno te recomiendo revisar el binding que hay de la libreria sfml
http://pdinklag.de/jsfml/

Tambien te dejo su wiki con ejemplos de uso
https://github.com/pdinklag/JSFML/wiki/Windows

Saludos.... :silbar:

Pues la verdad no tenia pensado en hacer nada serio, si no mas bien era para aprender algo que no entendía, de todas formas lo probare si no encuentro alguna solucion  ;)


Cita de: ivancea96 en 20 Julio 2016, 18:43 PM
Si es un juego con interfaz gráfica, lasclases que uses para ella tendrán eventos de teclas. Puedes marcar en un HashTable<Tecla, boolean> las teclas en los eventos, y así saber en cualquier momento si están presionadas o no.
Me has dado una idea, lo intente haciendo con un boolean que se ponga en true cuando este presionado y false cuando se suelte y funciono  ;-)

Gracias a todos.