Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/02/2012, 14:41
Avatar de loganbdn
loganbdn
 
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Control del teclado en Juegos Java

Cita:
Iniciado por zero0097 Ver Mensaje
no lo hace, pero podrias usar un Thread.sleep(10)... en teoria cada 10 milisegundos agarraria el evento.... lo ideal para esto es que uses un panel ya que refresa la pantalla más rapido. y si estas en un applet, el applet viewer hace pausas que en el navegador no se ven.....

Si no hay problema me gustaria ver tu código por que quiero ver como crear gravedad y los choques entre los dibujos del panel
El fallo es que la rapidez en la repeticion de las teclas del sistema operativo no se si se puede configurar tambien dentro de Java. Con eso me facilitaria tambien la programacion. Estoy usando windows 7

Te escribo el codigo de control de teclas que mueve la nave es muy simple se llama VigilaTeclado. Paralelamente a esta tengo una clase con un timer que va llamando cada 10ms y va moviendo los enemigos. El movimiento de los enemigos es muy simplon de momento solo voy incrementando x o y linealmente. Estoy mas liado en solucionar el problema del movimiento con el teclado. Podria mover los enemigos y la nave con la tecnica de 'Polling' (bucle) pero puede ser mas liosa. La solucion que veo a mi problema es que tenga que mover la nave con teclado por llamada a bucle en vez de a eventos y el movimiento de enemigos con el timer.

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class VigilaTeclado extends KeyAdapter
{
public void keyPressed (KeyEvent evt)
{
switch (evt.getKeyCode())
{
case KeyEvent.VK_RIGHT: System.out.println("derecha"); break;
case KeyEvent.VK_LEFT: System.out.println("izquierda"); break;
case KeyEvent.VK_UP: System.out.println("Arriba"); break;
case KeyEvent.VK_DOWN: System.out.println("Abajo"); break;
case KeyEvent.VK_SPACE: System.out.println("disparo"); break;
}
}
}

Última edición por loganbdn; 03/02/2012 a las 14:49