Class Camera
Sie kann ein Objekt fokussieren und ihm so folgen. Hierbei besteht auch die Moeglichkeit, diesen Fokus in Grenzen zu halten. Und zwar durch die Fokus-Bounds. Diese 4 Grenzwerte koennen 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
grenzen = new Bounds(0, 0, 1500, 1000);
meineCam.setBounds(grenzen);
Hierdurch wird automatisch der gesamte Fokusapparat (auf den Bereich zwischen den Punkten (0|0) und (1500|1000) ) eingestellt. Bei spezielleren Fokuswuenschen laesst sich dies ebenfalls arrangieren durch die einzelnen Methoden, mit denen alle vier Bounds (N, S, O, W) einzeln verstellt und (de)aktiviert werden koennen.
!!Achtung!!
Bei den Fokuseinstellungen sollte immer ein Bereich gewaehlt werden, der die Groesse des Anzeigefensters (oder Vollbildes) bei weitem uebersteigt.
Allgemein wirken diese Bounds auch ohne aktivierten Fokus. jedoch ist dies meist weniger sinnvoll.
- Author:
- Michael Andonie
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGibt den Offset/Verzug der Kamera aus.Die aktuelle Position der Kamera.float
float
getZoom()
Gibt den aktuellen Zoom aus.boolean
Gibt an, ob die Kamera durch Bounds in ihrer Bewegung beschränkt ist.boolean
hasFocus()
Gibt an, ob die Kamera ein Fokus-Objekt verfolgt oder "steif" ist.void
moveBy
(float x, float y) Verschiebt die Kamera um einen bestimmten Wert ingetX
- undgetY
-Richtung (relativ).void
void
moveTo
(int x, int y) Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung).void
void
void
rotateBy
(float degree) void
rotateTo
(float degree) void
setBounds
(ea.internal.Bounds bounds) Mit dieser Methode kann die Kamerabewegung eingeschränkt werden.void
Setzt den Fokus der Kamera auf ein Objekt.void
Setzt einen Kameraverzug.void
setPosition
(Vector position) Setzt die aktuelle Position der Kameravoid
setPostion
(float x, float y) Setzt die aktuelle Position der Kameravoid
setZoom
(float zoom) Setzt den Zoom der Kamera.
-
Field Details
-
DEFAULT_ZOOM
public static final float DEFAULT_ZOOM- See Also:
-
-
Constructor Details
-
Camera
@Internal public 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
@API public boolean 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 Vector, um den das Image, das den Fokus exakt im Zentrum hat, verschoben wird. Das heißt, dass eine Figur im Fokus um 100 Pixel tiefer als im absoluten Bildzentrum liegt, wenn der Fokusverzug mit folgender Methode gesetzt wurde:
camera.setOffset(new Vector(0, -100));
- Parameters:
offset
- Der Vector, um den ab sofort die Kamera vom Zentrum des Fokus verschoben wird.
-
getOffset
Gibt den Offset/Verzug der Kamera aus.- Returns:
- Der aktuelle Verzug der Kamera.
- See Also:
-
setBounds
@API public void setBounds(ea.internal.Bounds bounds) Mit dieser Methode kann die Kamerabewegung eingeschränkt werden.Ein Rectangle gibt die Begrenzung an, die die Kameraperspektive niemals übertreten wird.
- Parameters:
bounds
- Das Rectangle, das die Grenzen der Kamera angibt.
-
hasBounds
@API public boolean hasBounds()Gibt an, ob die Kamera durch Bounds in ihrer Bewegung beschränkt ist.- Returns:
true
falls ja, sonstfalse
.
-
setZoom
@API public void setZoom(float zoom) Setzt den Zoom der Kamera.Der Zoom bestimmt wie "nah" die Kamera an der Zeichenebene ist. Die Größe eines Objektes entspricht der Größe auf der Zeichenebene multipliziert mit dem Zoomfaktor. Defaultwert des Zoomfaktors ist
1
.- Parameters:
zoom
- Der neue Zoom-Wert der Kamera. Werte größer als 1 "zoomen rein". Werte zwischen 1 und 0 (jeweils exklusiv) "zoomen raus".
-
getZoom
@API public float getZoom()Gibt den aktuellen Zoom aus.- Returns:
- Der aktuelle Zoom der Kamera.
-
moveBy
@API public void moveBy(float x, float y) Verschiebt die Kamera um einen bestimmten Wert ingetX
- undgetY
-Richtung (relativ).- Parameters:
x
- Die Verschiebung ingetX
-Richtung.y
- Die Verschiebung ingetY
-Richtung.
-
moveBy
-
moveTo
@API public void moveTo(int x, int y) Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung). Von nun an ist der Point mit den eingegebenen Koordinaten im Zentrum des Bildes.- Parameters:
x
- DiegetX
-Koordinate des Zentrums des Bildes.y
- DiegetY
-Koordinate des Zentrums des Bildes.
-
moveTo
-
rotateBy
@API public void rotateBy(float degree) -
rotateTo
@API public void rotateTo(float degree) -
setPosition
Setzt die aktuelle Position der Kamera- Parameters:
position
- die neue Position der Kamera
-
setPostion
@API public void setPostion(float x, float y) Setzt die aktuelle Position der Kamera- Parameters:
x
- Neue X-Koordinate des Kamerazentrumsy
- Neue Y-Koordinate des Kamerazentrums
-
getPosition
Die aktuelle Position der Kamera.- Returns:
- Die aktuelle Position der Kamera.
-
onFrameUpdate
public void onFrameUpdate() -
getRotation
public float getRotation()
-