Class Scene

java.lang.Object
de.pirckheimer_gymnasium.engine_pi.Scene
All Implemented Interfaces:
ActorAdder, FrameUpdateListenerRegistration, KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration
Direct Known Subclasses:
MainAnimation

Mithilfe von Szenen können verschiedene Ansichten eines Spiels erstellt werden, ohne beim Szenenwechsel alle grafischen Objekte entfernen und wieder neu erzeugen zu müssen.
  • Constructor Details

    • Scene

      public Scene()
  • Method Details

    • getScene

      public Scene getScene()
      Specified by:
      getScene in interface ActorAdder
    • getMainLayer

      @API public Layer getMainLayer()
      Gibt die Hauptebene dieser Szene aus.
      Returns:
      Die Hauptebene dieser Szene.
    • step

      @Internal public final void step(double pastTime, Function<Runnable,Future<?>> invoker) throws InterruptedException
      Führt auf allen Ebenen parallelisiert den World-Step aus.
      Parameters:
      pastTime - Die Echtzeit, die seit dem letzten World-Step vergangen ist.
      Throws:
      InterruptedException
    • render

      @Internal public final void render(Graphics2D g, int width, int height)
    • addLayer

      @API public final void addLayer(Layer layer)
    • removeLayer

      @API public final void removeLayer(Layer layer)
    • getVisibleArea

      @API public Bounds getVisibleArea(Vector gameSizeInPixels)
      Gibt die sichtbare Fläche auf dem Hauptebene aus.
      Returns:
      Die sichtbare Fläche auf der Hauptebene
      See Also:
    • getCamera

      @API public final Camera getCamera()
      Gibt die Kamera der Szene aus.
      Returns:
      Die Kamera der Szene aus.
    • setMeter

      @API public void setMeter(double pixelCount)
      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 32 Pixel. Größer Werte zoomen näher an die Spielfläche heran, kleine Werte weiter von der Spielfläche weg.

      Bei dieser Methode handelt es sich um eine Abkürzung. Statt getCamera().setMeter(double) braucht nur setMeter(double) geschrieben werden.

      Parameters:
      pixelCount - Die neue Anzahl an Pixel, die einem Meter entsprechen.
      See Also:
    • setFocus

      @API public void setFocus(Actor focus)
      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 Camera.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.

      Bei dieser Methode handelt es sich um eine Abkürzung. Statt getCamera().setFocus(Actor) braucht nur setFocus(Actor) geschrieben werden.

      Parameters:
      focus - Die Figur, die fokussiert werden soll.
    • getWorldHandler

      @Internal public final WorldHandler getWorldHandler()
      Gibt den WorldHandler der Hauptebene aus.
      Returns:
      WorldHandler der Hauptebene.
    • getGravity

      public Vector getGravity()
      Gibt die Schwerkraft, die momentan auf die Hauptebene wirkt, als Vektor in [N] bzw. [m/s^2] zurück.
      Returns:
      Die Schwerkraft, die momentan auf die Hauptebene wirkt, als Vektor in [N] bzw. [m/s^2].
    • setGravity

      @API public void setGravity(Vector gravity)
      Setzt die Schwerkraft als Vektor, die auf alle Objekte innerhalb der Hauptebene der Szene wirkt.
      Parameters:
      gravity - Die neue Schwerkraft als Vector. Die Einheit ist [N].
      See Also:
      jbox2d source code:
      dynamics/World.java#L997-L1004 @box.2d b2_world.h#L312-L315
    • setGravity

      @API public void setGravity(double gravityX, double gravityY)
      Setzt die Schwerkraft durch zwei Eingabeparameter für die x- und y-Richtung, die auf alle Objekte innerhalb der Hauptebene der Szene wirkt.
      Parameters:
      gravityX - Die neue Schwerkraft, die in X-Richtung wirken soll. Die Einheit ist [N].
      gravityY - Die neue Schwerkraft, die in Y-Richtung wirken soll. Die Einheit ist [N].
      See Also:
      jbox2d source code:
      dynamics/World.java#L997-L1004 @box.2d b2_world.h#L312-L315
    • setGravityOfEarth

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

      @API public void setPhysicsPaused(boolean worldPaused)
      Setzt, ob die Engine-Physics für diese Szene pausiert sein soll.
      Parameters:
      worldPaused - false: Die Engine-Physik läuft normal. true: Die Engine-Physik läuft nicht. Das bedeutet u.A. keine Collision-Detection, keine Physik-Simulation etc., bis die Physik wieder mit setPhysicsPaused(true) aktiviert wird.
      See Also:
    • isPhysicsPaused

      @API public boolean isPhysicsPaused()
      Gibt an, ob die Physik dieser Szene pausiert ist.
      Returns:
      true: Die Physik ist pausiert. false: Die Physik ist nicht pausiert.
      See Also:
    • add

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

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

      @API public EventListeners<KeyStrokeListener> getKeyStrokeListeners()
      Specified by:
      getKeyStrokeListeners in interface KeyStrokeListenerRegistration
    • getMouseClickListeners

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

      @API public EventListeners<MouseScrollListener> getMouseScrollListeners()
      Specified by:
      getMouseScrollListeners in interface MouseScrollListenerRegistration
    • getFrameUpdateListeners

      @API public EventListeners<FrameUpdateListener> getFrameUpdateListeners()
      Specified by:
      getFrameUpdateListeners in interface FrameUpdateListenerRegistration
      Returns:
      Liste der FrameUpdateListener
    • invokeFrameUpdateListeners

      @Internal public final void invokeFrameUpdateListeners(double pastTime)
    • getMousePosition

      @API public final Vector getMousePosition()
      Gibt die Position der Maus in der Szene als Vektor in Meter relativ zum Koordinatensystem zurück.

      Der Positions-Vektor ist in der Einheit Meter angegeben und bezieht sich auf einen Punkt des zu Grunde liegenden Koordinatensystems.

      Returns:
      Die Position der Maus in der Szene als Vektor in Meter.
      See Also:
    • getBackgroundColor

      public Color getBackgroundColor()
      Gibt die Hintergrundfarbe zurück.
      Returns:
      Die Hintergrundfarbe.
    • setBackgroundColor

      public void setBackgroundColor(Color color)
      Setzt die Hintergrundfarbe.
      Parameters:
      color - Die Hintergrundfarbe.
    • setBackgroundColor

      public void setBackgroundColor(String color)
      Setzt die Hintergrundfarbe als Zeichenkette.
      Parameters:
      color - Ein Farbname, ein Farbalias (siehe Auflistung) oder eine Farbe in hexadezimaler Codierung (z. B. #ff0000).
      See Also: