Package ea

Class Camera

java.lang.Object
ea.Camera

public final class Camera extends Object
Die Kamera "blickt" auf die Zeichenebene, das was sie sieht beschreibt den Teil der Zeichenebene; das, was im Window dargestellt wird.
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
    Modifier and Type
    Field
    Description
    static final float
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Konstruktor erstellt eine neue Kamera mit Fokus auf (0, 0).
  • Method Summary

    Modifier and Type
    Method
    Description
    Gibt den Offset/Verzug der Kamera aus.
    Die aktuelle Position der Kamera.
    float
     
    float
    Gibt den aktuellen Zoom aus.
    boolean
    Gibt an, ob die Kamera durch Bounds in ihrer Bewegung beschränkt ist.
    boolean
    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 in getX- und getY-Richtung (relativ).
    void
    moveBy(Vector vector)
     
    void
    moveTo(int x, int y)
    Verschiebt das Zentrum der Kamera zur angegebenen Position (absolute Verschiebung).
    void
    moveTo(Vector vector)
     
    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
    setFocus(Actor focus)
    Setzt den Fokus der Kamera auf ein Objekt.
    void
    setOffset(Vector offset)
    Setzt einen Kameraverzug.
    void
    setPosition(Vector position)
    Setzt die aktuelle Position der Kamera
    void
    setPostion(float x, float y)
    Setzt die aktuelle Position der Kamera
    void
    setZoom(float zoom)
    Setzt den Zoom der Kamera.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Camera

      @Internal public Camera()
      Konstruktor erstellt eine neue Kamera mit Fokus auf (0, 0).
  • Method Details

    • setFocus

      @API public void setFocus(Actor focus)
      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 einfach null ü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, sonst false.
      See Also:
    • setOffset

      @API public void setOffset(Vector offset)
      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

      @API public Vector 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, sonst false.
    • 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 in getX- und getY-Richtung (relativ).
      Parameters:
      x - Die Verschiebung in getX-Richtung.
      y - Die Verschiebung in getY-Richtung.
    • moveBy

      @API public void moveBy(Vector vector)
    • 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 - Die getX-Koordinate des Zentrums des Bildes.
      y - Die getY-Koordinate des Zentrums des Bildes.
    • moveTo

      @API public void moveTo(Vector vector)
    • rotateBy

      @API public void rotateBy(float degree)
    • rotateTo

      @API public void rotateTo(float degree)
    • setPosition

      @API public void setPosition(Vector position)
      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 Kamerazentrums
      y - Neue Y-Koordinate des Kamerazentrums
    • getPosition

      @API public Vector getPosition()
      Die aktuelle Position der Kamera.
      Returns:
      Die aktuelle Position der Kamera.
    • onFrameUpdate

      public void onFrameUpdate()
    • getRotation

      public float getRotation()