public class Maus
extends java.lang.Object
Die objektmäßige Repräsentation der (Computer-)Maus.
Modifier and Type | Class and Description |
---|---|
class |
Maus.Auftrag
Diese Klasse sammelt die Auftraege der KlickReagierbar-Interfaces.
|
Constructor and Description |
---|
Maus(int mausArt) |
Maus(int mausArt,
boolean absolut,
boolean bewegend)
Voller Konstruktor für eine Standard-Maus.
|
Maus(Raum mausbild,
Punkt hotspot)
Erstellt eine Maus, die die Kamera nicht bewegen kann und nicht absolut ist.
|
Maus(Raum mausbild,
Punkt hotspot,
boolean absolut)
Unabhaengiger Konstruktor.
|
Maus(Raum mausbild,
Punkt hotspot,
boolean absolut,
boolean bewegend)
Unabhängiger Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
absolut() |
void |
anmelden(MausReagierbar m,
Raum objekt,
int code)
Meldet ein Raumobjekt zum Ueberwachen an einem bestimmten Listener an, unter Eingabe eines bestimmten Codes.
|
boolean |
bewegend() |
void |
entfernen(MausReagierbar g)
Entfernt ein bestimmtes MausReagierbar-Interface gaenzlich von Kollisionstest.
|
void |
fensterSetzen(Fenster f)
Setzt die Referenz auf das Fenster, in dem diese Maus sitzt, neu.
|
Raum |
getImage()
Berechnet das Bild von der Maus, das in der Engine dargestellt wird.
|
Punkt |
hotSpot() |
void |
klick(int x,
int y,
boolean links)
Bei einer angemeldeten Maus wird bei einem Klick diese Methode aufgerufen.
|
void |
klick(int x,
int y,
boolean links,
boolean losgelassen)
Bei einer angemeldeten Maus wird bei einem Klick diese Methode aufgerufen.
|
Punkt |
klickAufZeichenebene()
Gibt den Punkt auf der Zeichenebene aus, auf den die Maus bei einem Klick zeigen würde.
|
void |
klickReagierbarAnmelden(KlickReagierbar k)
Meldet ein KlickReagierbar bei der Maus an.
|
void |
mausLosgelassenReagierbarAnmelden(MausLosgelassenReagierbar m)
Meldet ein
MausLosgelassenReagierbar -Objekt bei der Maus an. |
void |
mausReagierbarAnmelden(MausReagierbar m,
Raum objekt)
Alternativmethopde zum anmelden.
|
java.util.ArrayList<Maus.Auftrag> |
mausReagierbarListe()
Gibt die Liste aller Auftraege (interne Klasse!!)
|
void |
rechtsKlickReagierbarAnmelden(RechtsKlickReagierbar k)
Meldet ein RechtsKlickReagierbar-Objekt bei der Maus an.
|
void |
uebernehmeAlleListener(Maus von)
Uebernimmt alle Listener von einer anderen Maus.
|
public Maus(Raum mausbild, Punkt hotspot, boolean absolut, boolean bewegend)
Unabhängiger Konstruktor. Dieser Konstruktor ermöglicht es, ein eigenes Mausbild einzubringen.
Hierfuer muss klar sein, was ein Hotspot ist:
Ein Hotspot ist ein Punkt, relativ entfernt von der linken oberen Ecke des Mausbildes.
Dieser Punkt gibt an, welcher Punkt exakt der “Klickpunkt” ist.
Angenommen das Mausbild misst 20 x 20 Pixel, und der Hotspot ist ein Punkt mit den Koordinaten (10|10), so waere der Hotspot in der Mitte des Bildes und bei einem Klick waere diese “klick”-Koordinate genau in der Mitte.
Wäre der Punkt (0|0), so waere der Hotspot genau in der linken oberen Ecke des Mausbildes.
mausbild
- Das Bild-Objekt, das ab sofort das Mausbild sein wird und auch dementsprechend bewegt wird.hotspot
- Der bereits eingaengig beschriebene Hotspot-Punktabsolut
- Ob diese Maus absolut sein soll; ist dieser Wert true, so ist die Maus immer in der Mitte, dafuer bewegt sich die Kamera
bei Mausverschiebung. Bei false
verhaelt sich diese Maus genauso wie eine gewohnte Computermaus.
bewegend
- Ist dieser Wert true
, so wird die Maus, wenn sie sich aus dem Fenster bewegt (bei einer absoluten Maus bei jeder Bewegung) das Fenster verschieben; ist dieser Wert false
, so ist dies nich moeglich, und die Maus ist in den Fenzergrenzen gefangen (Was besonders bei einer absoluten Maus wenig Sinn macht).Bild
,
Kamera
public Maus(Raum mausbild, Punkt hotspot, boolean absolut)
Unabhaengiger Konstruktor. Dieser Konstruktor ermoeglicht es, ein eigenes, die Kamera nicht bewegendes, Mausbild einzubringen.
Hierfuer muss klar sein, was ein Hotspot ist:
Ein Hotspot ist ein Punkt, relativ entfernt von der linken oberen Ecke des Mausbildes.
Dieser Punkt gibt an, welcher Punkt exakt der “Klickpunkt” ist.
Angenommen das Mausbild misst 20 x 20 Pixel, und der Hotspot ist ein Punkt mit den Koordinaten (10|10), so waere der Hotspot in der Mitte des Bildes und bei einem Klick waere diese “klick”-Koordinate genau in der Mitte.
Waere der Punkt (0|0), so waere der Hotspot genau in der linken oberen Ecke des Mausbildes.
mausbild
- Das Bild-Objekt, das ab sofort das Mausbild sein wird und auch dementsprechend bewegt wird.hotspot
- Der bereits eingaengig beschriebene Hotspot-Punktabsolut
- Ob diese Maus absolut sein soll; ist dieser Wert true, so ist die Maus immer in der Mitte, dafuer bewegt sich die Kamera
bei Mausverschiebung. Bei false
verhaelt sich diese Maus genauso wie eine gewohnte Computermaus.
Maus(Raum, Punkt, boolean, boolean)
,
Bild
,
Kamera
public Maus(Raum mausbild, Punkt hotspot)
Erstellt eine Maus, die die Kamera nicht bewegen kann und nicht absolut ist.
Fuer naehere Erlaeuterung siehe die groesseren Konstruktoren.
mausbild
- Das Bild der Maus.hotspot
- Der Hotspot.Maus(Raum, Punkt, boolean)
public Maus(int mausArt, boolean absolut, boolean bewegend)
Voller Konstruktor für eine Standard-Maus.
Hierbei gibt es ganz verschiedene Maeuse, die ueber ihren Index gewählt werden können. Hierzu ist das Handbuch zu konsultieren.
mausArt
- Die Art der Maus. Jeder Wert steht fuer eine eigene Maus.absolut
- Ob die Maus absolut (immer in der Mitte) oder relativ (auf dem Bildschirm frei beweglich) sein soll.bewegend
- Ob die Maus die Kamera bewegen koennen soll oder nicht.public Maus(int mausArt)
public void fensterSetzen(Fenster f)
Setzt die Referenz auf das Fenster, in dem diese Maus sitzt, neu. ACHTUNG: Sollte nicht von Außen benutzt werden, falls man sich nicht genau mit der Struktur der Engine auskennt.
f
- Die neue Fensterreferenz.public void anmelden(MausReagierbar m, Raum objekt, int code)
Meldet ein Raumobjekt zum Ueberwachen an einem bestimmten Listener an, unter Eingabe eines bestimmten Codes.
m
- Das Listener-Objekt, dass bei Kollision benachrichtigt werden soll.objekt
- Das auf Klick zu ueberwachende Raum-Objektcode
- Der Code, mit dem ein Klick auf dieses Objekt assoziiert wird.MausReagierbar.mausReagieren(int)
public void mausReagierbarAnmelden(MausReagierbar m, Raum objekt)
Alternativmethopde zum anmelden. Hierbei gibt es keinen Code-Parameter; dieser wird automatisch auf 0
gesetzt.
m
- Der anzumeldende Listenerobjekt
- Das zu auf Klicks zu ueberwachende Objektanmelden(MausReagierbar, Raum, int)
public void klickReagierbarAnmelden(KlickReagierbar k)
Meldet ein KlickReagierbar bei der Maus an.
Ab dann wird es bei jedem Mausklick (Linksklick) in der Engine benachrichtigt.
k
- Das anzumeldende KlickReagierbar-Interfacepublic void rechtsKlickReagierbarAnmelden(RechtsKlickReagierbar k)
Meldet ein RechtsKlickReagierbar-Objekt bei der Maus an.
Ab dann wird es bei jedem Rechtsklick benachrichtigt.
k
- Das anzumeldende RechtsKlickReagierbar
-Interfacepublic void mausLosgelassenReagierbarAnmelden(MausLosgelassenReagierbar m)
Meldet ein MausLosgelassenReagierbar
-Objekt bei der Maus an.
Ab dann wird es jedes mal durch Aufruf seiner Methode benachrichtigt, wenn eine Maustaste losgelassen wird.
m
- public void uebernehmeAlleListener(Maus von)
Uebernimmt alle Listener von einer anderen Maus.
von
- Von dieser Maus, werden alle Listener-Listen übernommen. Bereits vorhandene Listener bleiben dabei erhalten, werden aber eventuell DOPPELT eingefügt.public void klick(int x, int y, boolean links, boolean losgelassen)
Bei einer angemeldeten Maus wird bei einem Klick diese Methode aufgerufen.
So lassen sich auch Klicks auf die Maus “simulieren”.
x
- Die X-Koordinate des Klicksy
- Die Y-Koordinate des Klickslinks
- War der Klick ein Linksklick, ist dieser Wert true
. Fuer jede andere Klickart ist dieser Wert false
. In diesem Fall wird mit einem Rechtsklick gerechnet.ist
- dieser Wert true
, so wird dies als losgelassene Taste behandelt.public void klick(int x, int y, boolean links)
Bei einer angemeldeten Maus wird bei einem Klick diese Methode aufgerufen.
Theoretisch liessen sich so Tastenklicks “simulieren”.
x
- Die X-Koordinate des Klicksy
- Die Y-Koordinate des Klickslinks
- War der Klick ein Linksklick, ist dieser Wert true
. Fuer jede andere Klickart ist dieser Wert false
. In diesem Fall wird mit einem Rechtsklick gerechnet.klick(int, int, boolean, boolean)
public void entfernen(MausReagierbar g)
Entfernt ein bestimmtes MausReagierbar-Interface gaenzlich von Kollisionstest.
Heisst das also, dass mehrere verschiedene Raum-Objekte an dem uebergebenen Objekt Ueberwacht werden, so wird ab sofort fuer keines mehr eine Benachrichtigung stattfinden.
g
- Das gaenzlich von Klick-Tests zu entfernende MausReagierbar
-Interfacepublic boolean absolut()
public boolean bewegend()
public Raum getImage()
Berechnet das Bild von der Maus, das in der Engine dargestellt wird.
public Punkt hotSpot()
public Punkt klickAufZeichenebene()
Gibt den Punkt auf der Zeichenebene aus, auf den die Maus bei einem Klick zeigen würde. Diese Methode rechnet alle Umstände der Maus (z.B. relativ bzw. absolut) mit ein und gibt die genaue Position des Klicks zurück.
public java.util.ArrayList<Maus.Auftrag> mausReagierbarListe()
Gibt die Liste aller Auftraege (interne Klasse!!) fuer MausReagierbar- Interfaces
ACHTUNG Die ArrayList ist verantwortlich fuer die MausReagierbar-Aktionen. Daher stellt die Verwendung dieses Objekts durchaus eine Fehlerquelle dar.
Maus.Auftrag