Domanda

Sto scrivendo un gioco in Java e devo interagire con il mouse. Stavo per usare MouseAdapter, ma ne ho esaminato un po 'e non sembra avere alcun mezzo per determinare la posizione del puntatore del mouse senza fare clic o eseguire un'azione ... Quale sarebbe il modo consigliato di stai facendo questo?

Un paio di domande:

  1. Il mouse "posizione"? fare riferimento alla posizione del mouse in relazione ai limiti del monitor, ai limiti del gioco o sarebbe rappresentato come movimenti rispetto a una posizione precedente?

  2. Come si disabilita il puntatore del mouse in un'applicazione windowed ? (ovvero uno sparatutto in prima persona in cui i movimenti del mouse ruotano la vista dei giocatori anziché spostare un puntatore) È possibile?

È stato utile?

Soluzione

Guarda MouseMotionListener . Ciò ti consentirà di tenere traccia dei movimenti del mouse. Ti darà la posizione del mouse all'interno del componente a cui è collegato. Ma se dai un'occhiata alla SwingUtilities lì sono alcuni metodi utili per convertire i punti sullo schermo o su altri componenti o sul monitor.

Per il cursore, hai la possibilità di impostare la tua bitmap per il cursore, puoi guardare qui . O per una risposta SO più recente, puoi guardare qui . Quindi è possibile nascondere il cursore o impostarlo su una bitmap vuota, quindi intercettare i movimenti del mouse e gli eventi per controllare la vista.

Altri suggerimenti

Un tutorial sugli eventi del mouse è su: http://java.sun.com/docs/books/ tutorial / uiswing / eventi / mouselistener.html

Se guardi qui: http://java.sun.com/ JavaSE / 7 / docs / api / java / AWT / evento / MouseEvent.html

è possibile ottenere la posizione assoluta, sullo schermo o le coordinate relative al componente.

Se c'è un movimento per cambiare direzione, allora dovrai rimuovere il listener del mouse, oppure puoi avere solo una logica in cui il gestore eventi uscirà, senza fare nulla. Penso che sarebbe meglio, altrimenti devi tenere traccia di quando aggiungi e rimuovi gli ascoltatori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top