Package pi

Class Scene

All Implemented Interfaces:
FrameUpdateListenerRegistration, KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration, RenderSource
Direct Known Subclasses:
ActorRotationDemo, ActorSetFixtureFromStringDemo, AllDialogsDemo, AnimationDemo, ApplyForceDemo, ApplyImpulseDemo, ApplyRotationImpulseDemo, ApplyTorqueDemo, BallThrowDemo, BaseScene, BaseScene, BasketballThrowDemo, BillardDemo, BlockDebugScene, CameraDemo, CameraDemo, CarDemo, CircleDemo, CollisionTest, ColorContainerVisualizerDemo, ColorVariationsDemo, ColorWheelIttenDemo, DensityDemo, DepthFirstSearchDemo, DistanceJointDemo, DudeDemo, ForceKlickEnvironment, FrameUpdateListenerDemo, FrictionDemo, FroggyJump, GetMousePositionDemo, GhostsDebugScene, GraphCollectionDemo, GraphDrawerDemo, GravityDemo, GridDemo, GroupDemo, HelloWorldVersion1, HelloWorldVersion2, ImageAverageColorDemo, ImageDemo, ImageFontSpecimenDemo, ImageFontTextAlignmentDemo, ImageFontTextColorDemo, ImageFontTextDemo, ImageFontTextMultilineDemo, ImageFontTextSetContentDemo, ImpulseDemo, InstantModeDisabled, InstantModeDisabledByStaticBlock, ItemMapPainterTest, JukeboxDemo, JukeboxTetrisDemo, KeyEventDemo, KeyEventDisplayDemo, KeyStrokeCounterDemo, KeyStrokeListenerAsAnonymousClassDemo, KeyStrokeListenerAsLambdaDemo, KeyStrokeListenerAsNormalClassDemo, LayerDemo, LevelsScene, LineDemo, LineRandomDemo, ListenerOnActorsDemo, LogoDemo, MainMenuScene, MainScene, MarbleDemo, MinimalDemo, OverlayDemo, PaintingCirclesAdvancedDemo, PaintingCirclesDemo, PaintingSurfaceScene, ParticlesDemo, PeriodicTaskExecutorDemo, PongTable, PressedKeyRepeaterDemo, PrismaticJointDemo, RectangleDemo, RepeatDemo, RestitutionDemo, RevolteJointSeesawDemo, RevoluteJointDemo, RopeJointDemo, RotationDemo, SceneInfoOverlayDemo, ScreenshotDemo, SetPixelMultiplicationDemo, SingleTetrominoDebugScene, SnakeAdvanced, SnakeMinimal, SnakeScene, StarDemo, StatefulAnimationDemo, StatefulAnimationDemo, StaticKeyStrokeListenerDemo, SubMenuScene, TetrominoDebugScene, TetrominoWithoutGridScene, TextAllSystemFonts, TextDemo, TriangleDemo, WeldJointDemo

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()
      Erzeugt eine neue Szene.

      Dabei wird eine neue Kamera und einen neue Ebene erzeugt. Die Ebene hat die Position 0

  • Method Details

    • info

      public SceneInfoOverlay info()
      Returns:
      Eine Infobox, die über eine Szene gelegt wird.
      Since:
      0.42.0
    • info

      public SceneInfoOverlay info(String title)
    • info

      public SceneInfoOverlay info(String title, String subtitle)
    • info

      public SceneInfoOverlay info(String title, String subtitle, String description)
    • info

      public SceneInfoOverlay info(String title, String subtitle, String description, String help)
    • scene

      @Getter public Scene scene()
      Gibt sich selbst zurück.
      Returns:
      Die Szene selbst.
    • layer

      @API @Getter public Layer layer()
      Gibt die Hauptebene dieser Szene aus.
      Returns:
      Die Hauptebene dieser Szene.
    • renderOverlay

      @API public void renderOverlay(Graphics2D g, int width, int height)
      Zeichnet eine Überblendung in die Szene, die unabhängig von der Kameraeinstellung ist und alle Figuren der Szene überdecken kann.

      Diese Methode ist dazu gedacht, überschrieben zu werden.

      Parameters:
      g - Das Graphics2D-Objekt, in das gezeichnet werden soll.
      width - Die Breite der Zeichenfläche in Pixel.
      height - Die Höhe der Zeichenfläche in Pixel.
    • render

      @Internal public void render(Graphics2D g, int width, int height)
      Description copied from interface: RenderSource
      Zeichnet in eine Fläche.
      Specified by:
      render in interface RenderSource
      Parameters:
      g - Das Graphics2D-Objekt, in das gezeichnet werden soll.
      width - Die Breite der Zeichenfläche in Pixel.
      height - Die Höhe der Zeichenfläche in Pixel.
    • addLayer

      @API public final void addLayer(Layer layer)
      Fügt der Szene eine neue Ebene hinzu.
      Parameters:
      layer - Die Ebene, die der Szene hinzugefügt werden soll.
    • removeLayer

      @API public final void removeLayer(Layer layer)
      Entfernt eine Ebene aus der Szene.
    • visibleArea

      @API @Getter public Bounds visibleArea(Vector gameSizeInPixels)
      Gibt die sichtbare Fläche auf der Hauptebene aus.
      Parameters:
      gameSizeInPixels - Die Größe des Spielfensters in Pixel.
      Returns:
      Die sichtbare Fläche auf der Hauptebene
      See Also:
    • visibleArea

      @API @Getter public Bounds visibleArea()
      Gibt die sichtbare Fläche auf der Hauptebene aus.
      Returns:
      Die sichtbare Fläche im Meter auf der Hauptebene.
      Since:
      0.42.0
      See Also:
    • camera

      @API @Getter public final Camera camera()
      Gibt die Kamera der Szene aus.
      Returns:
      Die Kamera der Szene.
    • meter

      @API @Setter public void meter(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ößere 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 camera().meter(double) braucht nur meter(double) geschrieben werden.

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

      @API @Setter public void focus(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.offset(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 camera().focus(Actor) braucht nur focus(Actor) geschrieben werden.

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

      @Getter public Vector gravity()
      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].
    • gravity

      @API @Setter public void gravity(Vector gravity)
      Setzt Schwerkraft, die momentan auf die Hauptebene wirkt, als Vektor in [N] bzw. [m/s^2] 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 der Hauptebene der Szene 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 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:
    • physicsPaused

      @API @Setter public void physicsPaused(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.
    • clear

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

      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 aller Ebenen, 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) zu den Ebenen hinzugefügt. Sie sind also nicht sofort nach dem Hinzufügen über diese Methode abrufbar.

      Returns:
      Alle Figuren aller Ebenen, 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 zu einer Ebene hinzugefügt und aber unter Umständen noch nicht in der Physiks-Engine registriert wurden, als Liste zurück.
      Returns:
      Alle Figuren, die bereits zu einer Ebene hinzugefügt und aber unter Umständen noch nicht in der Physiks-Engine registriert
      Since:
      0.37.0
      See Also:
    • center

      @Getter public Vector center()
      Gibt den Mittelpunkt der hinzugefügten Figuren aller Ebenen aus.

      Bei der Berechnung werden die Mittelpunkte aller Figuren herangezogen.

      Since:
      0.37.0
    • focusCenter

      public void focusCenter()
      Setzt den Mittelpunkt der Kamera auf den Mittelpunkt der hinzugefügten Figuren aller Ebenen.

      Bei der Berechnung werden die Mittelpunkte aller Figuren herangezogen.

      Since:
      0.37.0
    • 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
    • frameUpdateListeners

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

      @API @Getter public final Vector mousePosition()
      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:
    • backgroundColor

      @Getter public Color backgroundColor()
      Gibt die Hintergrundfarbe zurück.
      Returns:
      Die Hintergrundfarbe.
    • backgroundColor

      @Setter public void backgroundColor(Color color)
      Setzt die Hintergrundfarbe durch Angabe eines Color-Objekts.
      Parameters:
      color - Die Hintergrundfarbe.
    • backgroundColor

      @Setter public void backgroundColor(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: