Obtener valor

Hola a todos:

Hice un "juego" en java donde hay un monstruo. Se "pinta" donde este el mouse (es un applet ese ejercicio) y se va moviendo como si se tratase del cursor del mouse. El monstruo dispara (con la tecla b) y el disparo debe bajar. Lo hace de hecho, pero solo si sigo moviendo el mouse; si dejo de mover el mouse, se detiene el disparo, esto como concecuencia de que para de donde quiero que salga el disparo, utilizo el x = evt.getX() y y = evt.getY() (las coordenadas del mouse) del monstruo y estas se actualizan solo si muevo el mouse. Lo que quiero es que el disparo SE QUEDE QUIETO a pesar de que mueva el mouse, esto con el proposito de meter un for y que haga el recorrido para abajo, mueva o no el mouse. Supongo que debo tomar el valor de x = evt.getX() y y = evt.getY() en el instante que yo apriete "b", pero con algun comando, hacer que ese valor no cambie a la par del mouse. ¿Alguna idea?

Espero me puedan ayudar.

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

hilos

para que el disparo se mueva de manera independiente al monstruo y del movimiento del mouse, debes echar a andar un hilo separado que vaya actualizando las coordenadas del disparo y lo vaya dibujando.

Te recomiendo meter ese codigo en un Runnable, que luego puedes echar a andar dentro de un Thread. Y revisa la manera de sincronizar en tu Runnable con algun lock o algo para cuando tienes que dibujar.

Gracias Ezamudio,

Gracias Ezamudio, investigaré que es un Runnable y como hacerle un lock.

Saludos

Imagen de ezamudio

Threads...

Runnable es una interfaz muy simple, solamente tienes que implementar el método run(). Lo complicado de lo que quieres hacer está en manejar la sincronización entre hilos, te recomiendo que busques algo respecto a animaciones en applets, supongo que se sigue usando AWT o no sé si ya puedes usar Swing en applets pero de todas formas tienes que sincronizar al momento de dibujar.

Esto te puede servir, solamente recuerda que ya no se considera buena práctica extender la clase Thread; es mejor implementar un Runnable y luego crear un Thread con tu Runnable como target.