Frage
Ich schreibe ein Spiel in Java, und brauchen Maus Interaktion haben. Ich wollte Mouseadapter verwenden, aber ich habe in es sah einige, und es scheint keine Mittel zu haben, der die Position des Mauszeigers ohne Klick oder die Aktion zu bestimmen getan ... Was ist der empfohlene Weg wäre von dies zu tun?
Ein paar Fragen:
-
Kann die Maus „Position“, um die Position der Maus bezieht sich in Bezug auf die Grenzen des Monitors, die Grenzen des Spiels, oder würde es als Bewegungen relativ zu einer vorherigen Position dargestellt werden?
-
Wie würde man den Mauszeiger in einem deaktivieren Fenster Anwendung? (Dh. Ein Ego-Shooter, in dem die Mausbewegungen dreht sich die Spieler sehen, anstatt einen Zeiger zu bewegen) Ist das möglich?
Lösung
Sehen Sie sich die Mouse . Dies ermöglicht Ihnen, Mausbewegungen zu verfolgen. Es wird Ihnen die Position der Maus innerhalb der Komponente, die es angebracht ist. Aber wenn man sich SwingUtilities Klasse gibt sind einige bequemen Methoden Punkte auf den Bildschirm oder andere Komponenten oder den Monitor.
konvertierenFür die Cursor, haben Sie die Möglichkeit Ihre eigene Bitmap für die Cursor zu setzen, können Sie hier . Oder für eine neuere SO beantworten, können Sie href="https://stackoverflow.com/questions/1984071/how-to-hide-cursor">. So könnte man den Cursor verstecken, oder es in ein leeres Bitmap gesetzt, und dann abfangen die Mausbewegungen und Ereignisse Ihre Ansicht zu steuern.
Andere Tipps
Ein Tutorial auf Mausereignisse unter: http://java.sun.com/docs/books/ tutorial / uiswing / events / mouselistener.html
Wenn Sie hier: http://java.sun.com/ JavaSE / 7 / docs / api / java / awt / event / MouseEvent.html
können Sie die absolute Position erhalten, auf dem Bildschirm oder Koordinaten in Bezug auf die Komponente.
Wenn es eine Bewegungsrichtung zu ändern ist, dann müssen Sie die Maus-Listener entfernen, oder Sie können nur eine gewisse Logik haben, wo der Event-Handler wird nur Ausgang, nichts zu tun. Ich denke, das wäre besser, sonst muss man im Auge behalten, wenn Sie die Zuhörer hinzufügen und entfernen.