Package ea

Class Layer

All Implemented Interfaces:
FrameUpdateListenerContainer, KeyListenerContainer, MouseClickListenerContainer, MouseWheelListenerContainer

Layer bieten die Möglichkeit, Actors vor und hinter der Zeichenebene mit zusätzlichen Eigenschaften (wie Parallaxe) zu rendern.
Author:
Michael Andonie
  • Constructor Details

    • Layer

      @API public Layer()
      Erstellt ein neues Layer.
  • Method Details

    • getParent

      public Scene getParent()
    • setLayerPosition

      @API public void setLayerPosition(int position)
      Setzt die Position dieses Layers relativ zu anderen Layers.
      Parameters:
      position - Die neue Position dieses Layers. Je höher dieser Wert, desto weiter vorne ist das Layer.
    • getLayerPosition

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

      @API public void setParallaxPosition(float parallaxX, float parallaxY)
      Setzt den Parallaxenwert der Bewegung für dieses Layer:
      • 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 das Layer.
      • 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-Parallaxenwert.
      parallaxY - Der Y-Parallaxenwert.
    • setParallaxZoom

      @API public void setParallaxZoom(float parallaxZoom)
      Setzt den Parallaxenwert beim Zoom für dieses Layer:
      • 1: Normaler Zoom mit der Kamera
      • 0: Kamerazoom hat keinen Einfluss auf dieses Layer.
      • 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.
    • setParallaxRotation

      @API public void setParallaxRotation(float parallaxRotation)
      Setzt die Parallaxe der Rotation. Dieses Layer wird um [kamerarotation] * parallaxRotation rotiert.
      Parameters:
      parallaxRotation - Die Rotationsparallaxe.
    • setTimeDistort

      @API public void setTimeDistort(float 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
    • setGravity

      @API public void setGravity(Vector gravityInNewton)
      Setzt die Schwerkraft, die auf alle Objekte innerhalb des Hauptlayers der Scene wirkt.
      Parameters:
      gravityInNewton - Die neue Schwerkraft als Vector. Die Einheit ist [N].
    • setVisible

      @API public void setVisible(boolean visible)
      Setzt, ob dieses Layer sichtbar sein soll.
      Parameters:
      visible - true: Das Layer ist sichtbar, wenn es an einer Szene angemeldet ist. false: Das Layer 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: Das Layer ist sichtbar. false: Das Layer ist nicht sichtbar.
      See Also:
    • add

      @API public void add(Actor... actors)
    • remove

      @API public final void remove(Actor... actors)
    • translateWorldPointToFramePxCoordinates

      @Internal public Vector translateWorldPointToFramePxCoordinates(Vector worldPoint)
      Übersetzt einen Punkt auf diesem Layer zu der analogen, aktuellen Pixelkoordinate im zeichnenden Frame.
      Parameters:
      worldPoint - Ein Punkt auf dem Layer
      Returns:
      Ein Vektor in Pixelkoordinaten (nicht Meter, Y-Achse ist umgekehrt), der mit der aktuellen Kameraeinstellung dem angegebenen worldPoint entspricht
    • getVisibleArea

      @API public ea.internal.Bounds getVisibleArea(Vector gameSizeInPixels)
      Gibt die derzeit auf dem Bildschirm sichtbare Fläche des Layers an.
      Returns:
      Die sichtbare Fläche als Bounds Objekt mit Angaben in Meter
      See Also:
    • setVisibleWidth

      @API public void setVisibleWidth(float 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:
    • setVisibleHeight

      @API public void setVisibleHeight(float 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 float calculatePixelPerMeter()
    • render

      @Internal public void render(Graphics2D g, Camera camera, int width, int height)
    • getWorldHandler

      @Internal public ea.internal.physics.WorldHandler getWorldHandler()
      Gibt den Worldhandler dieses Layers aus.
      Returns:
      Der Worldhandler dieser Ebene.
    • step

      @Internal public void step(float deltaSeconds)
    • getKeyListeners

      @API public EventListeners<KeyListener> getKeyListeners()
      Specified by:
      getKeyListeners in interface KeyListenerContainer
    • getMouseClickListeners

      @API public EventListeners<MouseClickListener> getMouseClickListeners()
      Specified by:
      getMouseClickListeners in interface MouseClickListenerContainer
    • getMouseWheelListeners

      @API public EventListeners<MouseWheelListener> getMouseWheelListeners()
      Specified by:
      getMouseWheelListeners in interface MouseWheelListenerContainer
    • getFrameUpdateListeners

      @API public EventListeners<FrameUpdateListener> getFrameUpdateListeners()
      Specified by:
      getFrameUpdateListeners in interface FrameUpdateListenerContainer