Pregunta

Estoy escribiendo un juego en Java y necesito tener interacción con el mouse. Iba a usar MouseAdapter, pero lo he examinado un poco, y no parece tener ningún medio para determinar la ubicación del puntero del mouse sin hacer clic o hacer una acción ... ¿Cuál sería la forma recomendada de haciendo esto?

Un par de preguntas:

  1. ¿El mouse " ubicación " se refieren a la ubicación del mouse en relación con los límites del monitor, los límites del juego, o ¿se representaría como movimientos relativos a una ubicación anterior?

  2. ¿Cómo se deshabilitaría el puntero del mouse en una aplicación windowed ? (es decir, un tirador en primera persona donde los movimientos del mouse giran la vista de los jugadores en lugar de mover un puntero) ¿Es esto posible?

¿Fue útil?

Solución

Mire el MouseMotionListener . Esto le permitirá rastrear los movimientos del mouse. Le dará la ubicación del mouse dentro del componente al que está conectado. Pero si observa SwingUtilities clase allí son algunos métodos convenientes para convertir puntos a la pantalla u otros componentes o al monitor.

Para el cursor, tiene la opción de establecer su propio mapa de bits para el cursor, puede buscar aquí . O para una respuesta SO más reciente, puede buscar aquí . Por lo tanto, podría ocultar el cursor o establecerlo en un mapa de bits vacío y luego interceptar los movimientos y eventos del mouse para controlar su vista.

Otros consejos

Un tutorial sobre eventos del mouse está en: http://java.sun.com/docs/books/ tutorial / uiswing / events / mouselistener.html

Si miras aquí: http://java.sun.com/ javase / 7 / docs / api / java / awt / event / MouseEvent.html

puede obtener la ubicación absoluta, en la pantalla o las coordenadas relativas al componente.

Si hay un movimiento para cambiar de dirección, entonces deberá eliminar el oyente del mouse, o simplemente puede tener algo de lógica donde el controlador de eventos simplemente saldrá, sin hacer nada. Creo que esto sería mejor, de lo contrario, debe realizar un seguimiento de cuándo agrega y quita los oyentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top