Foro de elhacker.net

Programación => Java => Mensaje iniciado por: PabloPbl en 19 Julio 2016, 23:24 pm



Título: Hay forma de comprobar la pulsación de teclas en un determinado momento?
Publicado por: PabloPbl en 19 Julio 2016, 23:24 pm
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
  1. if(keypressed("W") == true){
  2.      //CODE
  3. }

Sin tener que usar el KeyListener.


Título: Re: Hay forma de comprobar la pulsación de teclas en un determinado momento?
Publicado por: 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:


Título: Re: Hay forma de comprobar la pulsación de teclas en un determinado momento?
Publicado por: 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.


Título: Re: Hay forma de comprobar la pulsación de teclas en un determinado momento?
Publicado por: PabloPbl en 21 Julio 2016, 00:19 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  ;)


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.