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.static final double -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionDie aktuelle Position der Kamera.doublegetMeter()Gibt die Anzahl an Pixel aus, die einem Meter entsprechen.Gibt den Verzug der Kamera aus.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).voidVerschiebt die Kamera um einen bestimmten Vektor (relativ).voidmoveTo(int x, int y) Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung).voidVerschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung).voidImplementiert den FrameUpdateListener nicht, da die Kamera an einem anderen Zeitpunkt aktualisiert wird.voidEntfernt die fokussierte Figur von der Kamera.voidrotateBy(double angle) Rotiert die Kamera um den angegebenen Winkel.voidrotateTo(double angle) Setzt den Rotationswert der Kamera.voidMit dieser Methode kann die Kamerabewegung eingeschränkt werden.voidsetCenter(double x, double y) Setzt die aktuelle Position der Kamera.voidSetzt die aktuelle Position der Kamera.voidSetzt den Fokus der Kamera auf eine Figur.voidsetMeter(double pixelCount) Setzt die Anzahl an Pixel, die einem Meter entsprechen und setzt somit den „Zoom“ der Kamera.voidSetzt einen Kameraverzug.voidsetPostion(double x, double y) Setzt die aktuelle Position der Kamera.voidzoomIn()Die Kamera bewegt sich um den Standard-Zoomfaktor näher an das Spielfeld.voidzoomIn(double factor) Die Kamera bewegt sich näher an das Spielfeld.voidzoomOut()Die Kamera entfernt sich um den Standard-Zoomfaktor vom Spielfeld.voidzoomOut(double factor) Die Kamera entfernt sich vom Spielfeld.
-
Field Details
-
DEFAULT_METER
public static final double DEFAULT_METERDer Standardwert für die Anzahl an Pixel eines Meters.- See Also:
-
DEFAULT_ZOOM_FACTOR
public static final double DEFAULT_ZOOM_FACTOR- See Also:
-
-
Constructor Details
-
Camera
Konstruktor erstellt eine neue Kamera mit Fokus auf(0, 0).
-
-
Method Details
-
setFocus
Setzt den Fokus der Kamera auf eine Figur.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- Die Figur, die fokussiert werden soll.
-
removeFocus
Entfernt die fokussierte Figur von der Kamera.- Since:
- 0.28.0
-
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.- See Also:
-
hasBounds
Gibt an, ob die Kamera durchBoundsin ihrer Bewegung beschränkt ist.- Returns:
truefalls ja, sonstfalse.- See Also:
-
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
32Pixel. Größer Werte zoomen näher an die Spielfläche heran, kleine Werte weiter von der Spielfläche weg.- Parameters:
pixelCount- Die neue Anzahl an Pixel, die einem Meter entsprechen.- See Also:
-
zoomIn
Die Kamera bewegt sich näher an das Spielfeld. Die Ansicht wird vergrößert.- Parameters:
factor- 1 verdoppelt die Pixelanzahl eines Meters, 0 keine Veränderung.- Since:
- 0.28.0
-
zoomIn
Die Kamera bewegt sich um den Standard-Zoomfaktor näher an das Spielfeld. Die Ansicht wird vergrößert.- Since:
- 0.28.0
-
zoomOut
Die Kamera entfernt sich vom Spielfeld. Die Ansicht wird verkleinert.- Parameters:
factor- 0.5 halbiert die Pixelanzahl eines Meters, 0 keine Veränderung.- Since:
- 0.28.0
-
zoomOut
Die Kamera entfernt sich um den Standard-Zoomfaktor vom Spielfeld. Die Ansicht wird verkleinert.- Since:
- 0.28.0
-
getMeter
Gibt die Anzahl an Pixel aus, die einem Meter entsprechen.Ist die Pixelvervielfältigung aktiviert, wird der Faktor der Pixelvervielfältigung mit der Pixelanzahl multipliziert
- Returns:
- Die Anzahl an Pixel aus, die einem Meter entsprechen.
- See Also:
-
moveBy
Verschiebt die Kamera um einen bestimmten Vektor (relativ).- Parameters:
vector- Die Verschiebung als Vektor.
-
moveBy
Verschiebt die Kamera um einen bestimmten Wert inx- undy-Richtung (relativ).- Parameters:
x- Die Verschiebung inx-Richtung.y- Die Verschiebung iny-Richtung.
-
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:
vector- Das neue Zentrum der Kamera.
-
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.
-
rotateBy
Rotiert die Kamera um den angegebenen Winkel.Positive Werte drehen die die Kamera gegen den Uhrzeigersinn, negative im Uhrzeigersinn.
- Parameters:
angle- Der Winkel (in Grad), um den die Kamera rotiert werden soll.- Werte > 0 : Drehung gegen Uhrzeigersinn
- Werte < 0 : Drehung im Uhrzeigersinn
-
rotateTo
Setzt den Rotationswert der Kamera.rotateTo(90)dreht die Kamera beispiels um 90 Grad gegen den Uhrzeigersinn,rotateTo(-90)um 90 Grad im Uhrzeigersinn.- Parameters:
angle- Der Winkel (in Grad), um die Kamera von seiner Ausgangsposition bei Initialisierung rotiert werden soll.
-
setPostion
Setzt die aktuelle Position der Kamera.- Parameters:
x- Die neue X-Koordinate des Kamerazentrums.y- Die neue Y-Koordinate des Kamerazentrums.- See Also:
-
setCenter
Setzt die aktuelle Position der Kamera.- Parameters:
x- Die neue X-Koordinate des Kamerazentrums.y- Die neue Y-Koordinate des Kamerazentrums.- Since:
- 0.33.0
- See Also:
-
setCenter
Setzt die aktuelle Position der Kamera.- Parameters:
position- Die neue Position der Kamera.
-
getCenter
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.
-