Package pi

Class Layer

All Implemented Interfaces:
FrameUpdateListenerRegistration, KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration
Direct Known Subclasses:
HUD, PauseLayer

Eine Ebene bieten die Möglichkeit, Actor-Objekte vor und hinter der Zeichenebene mit zusätzlichen Eigenschaften (wie zum Beispiel Parallaxe) zu rendern.
Author:
Michael Andonie
  • Constructor Details

    • Layer

      @API public Layer()
      Erstellt eine neue Ebene.
  • Method Details

    • scene

      @Getter public Scene scene()
      Gibt die Szene, zu der diese Ebene gehört, zurück.
      Returns:
      Die Szene, zu der diese Ebene gehört.
    • layerPosition

      @API @Setter public void layerPosition(int position)
      Setzt die Position dieser Ebene relativ zu anderen Ebenen.
      Parameters:
      position - Die neue Position dieser Ebene. Je höher dieser Wert, desto weiter vorne ist sie.
    • layerPosition

      @API @Getter public int layerPosition()
      Gibt die Position des Layers aus.
      Returns:
      Der Wert, der die Position dieses Layers repräsentiert.
      See Also:
    • parallaxPosition

      @API @Setter public void parallaxPosition(double parallaxX, double parallaxY)
      Setzt die Parallaxen-Bewegung für dieser Ebene:
      • 1 ist keine Parallaxe (Bewegung exakt mit der Kamera)
      • Werte zwischen 0 und 1 schaffen einen entfernten Effekt: Die Bewegung ist weniger als die der Kamera
      • 0 bedeutet, die Bewegung der Kamera hat gar keinen Einfluss auf die Ebene.
      • Negative Werte sorgen für Bewegung entgegen der Kamera
      • Werte > 1 verstärken die Bewegung der Kamera (z.B. für Vordergrund).
      Parameters:
      parallaxX - Der x-Wert der Parallaxen-Bewegung.
      parallaxY - Der y-Wert der Parallaxen-Bewegung.
    • parallaxZoom

      @API @Setter public void parallaxZoom(double parallaxZoom)
      Setzt den Parallaxen-Zoom für diese Ebene:
      • 1: Normaler Zoom mit der Kamera
      • 0: Kamerazoom hat keinen Einfluss auf diese Ebene.
      • 0 < parallaxZoom < 1: Der Zoomeffekt tritt schwächer auf.
      • parallaxZoom > 1: Der Zoomeffekt tritt stärker auf.
      • parallaxZoom < 0: Der Zoomeffekt tritt betragsmäßig ähnlich und umgekehrt auf.
    • parallaxRotation

      @API @Setter public void parallaxRotation(double parallaxRotation)
      Setzt die Parallaxe der Rotation. Diese Ebene wird um [kamerarotation] * parallaxRotation rotiert.
      Parameters:
      parallaxRotation - Die Rotationsparallaxe.
    • timeDistort

      @API @Setter public void timeDistort(double timeDistort)
      Setzt einen Zeitverzerrungsfaktor. Die Zeit in der Physiksimulation vergeht standardmäßig in Echtzeit, kann allerdings verzerrt werden.
      Parameters:
      timeDistort - Zeit in der Simulation = Echtzeit * Verzerrungsfaktor
      • Werte >1 lassen die Zeit schneller vergehen
      • Werte <1 lassen die Zeit langsamer vergehen
      • 1 lässt die Zeit in Echtzeit vergehen
      • Werte <=0 sind nicht erlaubt
    • gravity

      @API @Setter public void gravity(Vector gravity)
      Setzt die Schwerkraft als Vektor, die auf alle Objekte innerhalb dieser Ebene wirkt.
      Parameters:
      gravity - Die neue Schwerkraft als Vector. Die Einheit ist [N] bzw. [m/s^2].
      See Also:
      JBox2D source code:
      dynamics/World.java#L997-L1004
      Box2D source code:
      b2_world.h#L312-L315
    • gravity

      @API @Setter public void gravity(double gravityX, double gravityY)
      Setzt die Schwerkraft durch zwei Eingabeparameter für die x- und y-Richtung, die auf alle Objekte innerhalb dieser Ebene wirkt.
      Parameters:
      gravityX - Die neue Schwerkraft, die in X-Richtung wirken soll. Die Einheit ist [N] bzw. [m/s^2].
      gravityY - Die neue Schwerkraft, die in Y-Richtung wirken soll. Die Einheit ist [N] bzw. [m/s^2].
      See Also:
      JBox2D source code:
      dynamics/World.java#L997-L1004
      Box2D source code:
      b2_world.h#L312-L315
    • gravityOfEarth

      @API @Setter public void gravityOfEarth()
      Setzt die Schwerkraft, die auf der Erde wirkt: 9.81 [N] bzw. [m/s^2] nach unten (x: 0, y: -9.81).
      See Also:
    • gravity

      @Getter public Vector gravity()
      Gibt die Schwerkraft, die momentan auf diese Ebene wirkt, als Vektor in [N] bzw. [m/s^2] zurück.
      Returns:
      Die Schwerkraft, die momentan auf diese Ebene wirkt, als Vektor in [N] bzw. [m/s^2].
    • visible

      @API @Setter public void visible(boolean visible)
      Setzt, ob diese Ebene sichtbar sein soll.
      Parameters:
      visible - true: Die Ebene ist sichtbar, wenn es an einer Szene angemeldet ist. false: Die Ebene ist auch dann nicht sichtbar, wenn es an einer Szene angemeldet ist.
      See Also:
    • isVisible

      @API public boolean isVisible()
      Gibt an, ob dieses Layer gerade sichtbar ist.
      Returns:
      true: Die Ebene ist sichtbar. false: Die Ebene ist nicht sichtbar.
      See Also:
    • add

      @API public void add(Actor... actors)
      Fügt einen oder mehrere Actor-Objekte der Ebene hinzu.
      Parameters:
      actors - Ein oder mehrere Actor-Objekte.
    • remove

      @API public final void remove(Actor... actors)
      Entferne einen oder mehrere Figuren aus der Ebene.
      Parameters:
      actors - Ein oder mehrere Actor-Objekte.
    • clear

      @API public void clear()
      Entfernt alle Figuren aus der Ebene.

      Diese Methode durchläuft die Liste der Figuren und entfernt jeden einzelnen von der Ebene.

      Since:
      0.42.0
    • actors

      @Getter public List<Actor> actors()
      Gibt alle Figuren dieser Ebene, die bereits in der Physics-Engine registriert sind, als Liste zurück.

      Die Figuren werden erst mit Verzögerung durch die Methode FrameUpdateListenerRegistration.defer(Runnable) zur Ebene hinzugefügt. Sie sind also nicht sofort nach dem Hinzufügen zur Ebene über diese Methode abrufbar.

      Returns:
      Alle Figuren dieser Ebene, die bereits in der Physics-Engine registriert sind.
      Since:
      0.37.0
      See Also:
    • addedActors

      @Getter public List<Actor> addedActors()
      Gibt alle Figuren, die bereits zur Ebene hinzugefügt und aber unter Umständen noch nicht in der Physics-Engine registriert wurden, als Liste zurück.
      Returns:
      Alle Figuren, die bereits zur Ebene hinzugefügt und aber unter Umständen noch nicht in der Physics-Engine registriert
      Since:
      0.37.0
      See Also:
    • visibleArea

      @API @Getter public Bounds visibleArea(Vector gameSizeInPixels)
      Gibt die derzeit auf dem Bildschirm sichtbare Fläche der Ebene an.
      Returns:
      Die sichtbare Fläche mit Angaben in Meter.
      See Also:
    • visibleWidth

      @API @Getter public void visibleWidth(double width, Vector gameSizeInPixels)
      Setzt den Kamerazoom exakt, sodass die sichtbare Breite des sichtbaren Fensters einer bestimmten Länge entspricht.
      Parameters:
      width - Die Breite in Meter, auf die die Kamera im Fenster exakt zu setzen ist.
      See Also:
    • visibleHeight

      @API @Setter public void visibleHeight(double height, Vector gameSizeInPixels)
      Setzt den Kamerazoom exakt, sodass die sichtbare Höhe des sichtbaren Fensters einer bestimmten Länge entspricht.
      Parameters:
      height - Die Höhe in Meter, auf die die Kamera im Fenster exakt zu setzen ist.
      See Also:
    • calculatePixelPerMeter

      @API public double calculatePixelPerMeter()
      Returns:
      Die Anzahl an Pixel, die ein Meter misst.
    • frameUpdateListeners

      @API @Getter public EventListeners<FrameUpdateListener> frameUpdateListeners()
      Specified by:
      frameUpdateListeners in interface FrameUpdateListenerRegistration
      Returns:
      Liste der FrameUpdateListener
    • keyStrokeListeners

      @API @Getter public EventListeners<KeyStrokeListener> keyStrokeListeners()
      Specified by:
      keyStrokeListeners in interface KeyStrokeListenerRegistration
    • mouseClickListeners

      @API @Getter public EventListeners<MouseClickListener> mouseClickListeners()
      Specified by:
      mouseClickListeners in interface MouseClickListenerRegistration
    • mouseScrollListeners

      @API @Getter public EventListeners<MouseScrollListener> mouseScrollListeners()
      Specified by:
      mouseScrollListeners in interface MouseScrollListenerRegistration