Class Camera
Sie kann ein Objekt fokussieren und ihm so folgen. Hierbei besteht auch die Möglichkeit, diesen Fokus in Grenzen zu halten. Und zwar durch die Fokus-Bounds. Diese 4 Grenzwerte können individuell verstellt und aktiviert werden. auch kann man den von der Kamera darzustellenden Bereich durch eine einzige Methode definieren, in dem man den Bereich als Bounds beschreibt.
Bounds bounds = new Bounds(0, 0, 1500, 1000);
camera.setBounds(bounds);
Hierdurch wird der gesamte Fokus auf den Bereich zwischen den Punkten (0|0) und (1500|1000) eingestellt.
!!Achtung!!
Bei den Fokus-Einstellungen sollte immer ein Bereich gewählt werden, der die
Größe des Anzeigefensters (oder Vollbildes) bei weitem übersteigt.
Allgemein wirken diese Bounds auch ohne aktivierten Fokus, jedoch ist
dies meist weniger sinnvoll.
- Author:
- Michael Andonie
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDer Standardwert für die Anzahl an Pixel eines Meters. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublegetMeter()Gibt die Anzahl an Pixel aus, die einem Meter entsprechen.Gibt den Verzug der Kamera aus.Die aktuelle Position der Kamera.doubleGibt die aktuelle Drehung zurück.booleanGibt an, ob die Kamera durchBoundsin ihrer Bewegung beschränkt ist.booleanhasFocus()Gibt an, ob die Kamera ein Fokus-Objekt verfolgt oder „steif“ ist.voidmoveBy(double x, double y) Verschiebt die Kamera um einen bestimmten Wert inx- undy-Richtung (relativ).voidvoidmoveTo(int x, int y) Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung).voidvoidImplementiert den FrameUpdateListener nicht, da die Kamera an einem anderen Zeitpunkt aktualisiert wird.voidrotateBy(double degree) voidrotateTo(double degree) voidMit dieser Methode kann die Kamerabewegung eingeschränkt werden.voidSetzt den Fokus der Kamera auf ein Objekt.voidsetMeter(double pixelCount) Setzt die Anzahl an Pixel, die einem Meter entsprechen und setzt somit den „Zoom“ der Kamera.voidSetzt einen Kameraverzug.voidsetPosition(Vector position) Setzt die aktuelle Position der Kamera.voidsetPostion(double x, double y) Setzt die aktuelle Position der Kamera.
-
Field Details
-
DEFAULT_METER
public static final double DEFAULT_METERDer Standardwert für die Anzahl an Pixel eines Meters.- See Also:
-
-
Constructor Details
-
Camera
Konstruktor erstellt eine neue Kamera mit Fokus auf(0, 0).
-
-
Method Details
-
setFocus
Setzt den Fokus der Kamera auf ein Objekt.Dieses Objekt ist ab dann im „Zentrum“ der Kamera. Die Art des Fokus (rechts, links, oben, unten, mittig, etc.) kann über die Methode
setOffset(Vector)geändert werden. Soll das Fokusverhalten beendet werden, kann einfachnullübergeben werden, dann bleibt die Kamera bis auf Weiteres in der aktuellen Position.- Parameters:
focus- Der Fokus.
-
hasFocus
Gibt an, ob die Kamera ein Fokus-Objekt verfolgt oder „steif“ ist.- Returns:
true, wenn die Kamera ein Fokus-Objekt hat, sonstfalse.- See Also:
-
setOffset
Setzt einen Kameraverzug. Der Standardwert hierfür ist(0, 0).Der Verzug ist ein Vektor, um den der
Fokusverschoben wird. Das heißt, dass eine Figur im Fokus um 100 Pixel tiefer als im absoluten Bildzentrum liegt, wenn der Fokus-Verzug mit folgender Methode gesetzt wurde:camera.setOffset(new Vector(0, -100));- Parameters:
offset- Der Vektor, um den ab sofort die Kamera vom Zentrum des Fokus verschoben wird.
-
getOffset
Gibt den Verzug der Kamera aus.- Returns:
- Der aktuelle Verzug der Kamera.
- See Also:
-
setBounds
Mit dieser Methode kann die Kamerabewegung eingeschränkt werden.Ein Rechteck gibt die Begrenzung an, die die Kameraperspektive niemals übertreten wird.
- Parameters:
bounds- Das Rechteck, das die Grenzen der Kamera angibt.
-
hasBounds
Gibt an, ob die Kamera durchBoundsin ihrer Bewegung beschränkt ist.- Returns:
truefalls ja, sonstfalse.
-
setMeter
Setzt die Anzahl an Pixel, die einem Meter entsprechen und setzt somit den „Zoom“ der Kamera.Die Anzahl an Pixel eines Meters bestimmt wie „nah“ oder „fern“ die Kamera an der Zeichenebene ist. Der Standardwert eines Meters ist
30Pixel. Große Werte zoomen rein, kleine Werte raus.- Parameters:
pixelCount- Die neue Anzahl an Pixel, die einem Meter entsprechen.
-
getMeter
Gibt die Anzahl an Pixel aus, die einem Meter entsprechen.- Returns:
- Die Anzahl an Pixel aus, die einem Meter entsprechen.
-
moveBy
Verschiebt die Kamera um einen bestimmten Wert inx- undy-Richtung (relativ).- Parameters:
x- Die Verschiebung inx-Richtung.y- Die Verschiebung iny-Richtung.
-
moveBy
-
moveTo
Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung). Von nun an ist der Punkt mit den eingegebenen Koordinaten im Zentrum des Bildes.- Parameters:
x- Diex-Koordinate des Zentrums des Bildes.y- Diey-Koordinate des Zentrums des Bildes.
-
moveTo
-
rotateBy
-
rotateTo
-
setPosition
Setzt die aktuelle Position der Kamera.- Parameters:
position- Die neue Position der Kamera.
-
setPostion
Setzt die aktuelle Position der Kamera.- Parameters:
x- Die neue X-Koordinate des Kamerazentrums.y- Die neue Y-Koordinate des Kamerazentrums.
-
getPosition
Die aktuelle Position der Kamera.- Returns:
- Die aktuelle Position der Kamera.
-
onFrameUpdate
public void onFrameUpdate()Implementiert den FrameUpdateListener nicht, da die Kamera an einem anderen Zeitpunkt aktualisiert wird. -
getRotation
public double getRotation()Gibt die aktuelle Drehung zurück.- Returns:
- Die aktuelle Drehung.
-