Package pi.actor

Class Animation

java.lang.Object
pi.actor.Actor
pi.actor.Animation
All Implemented Interfaces:
FrameUpdateListener, FrameUpdateListenerRegistration, KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration
Direct Known Subclasses:
Coin, ManaPickup

@API public class Animation extends Actor implements FrameUpdateListener
Eine Animation ist eine Figur, die aus mehreren Einzelbildern (Frames) besteht.

Die Einzelbilder werden in einer bestimmen Reihenfolge in die Animation eingefügt und dann in dieser Reihenfolge nacheinander gezeigt.

Die Einzelbilder können auf verschiedene Arten aus Bilddateien eingeladen werden:

Die Animation kann in zwei Modi abgespielt werden.

  1. Automatischer Modus: Die Bilder werden nach einer gewissen Dauer gewechselt.
  2. Manueller Module: Die Einzelbilder müssen manuell gewechselt werden.
Author:
Michael Andonie, Josef Friedrich
  • Constructor Details

    • Animation

      public Animation(Animation animation)
      Copy-Konstruktor, damit Vererbung genutzt werden kann.
      Parameters:
      animation - Animation.
  • Method Details

    • enableManualMode

      public void enableManualMode()
      Schaltet den manuellen Modus ein.

      Die Einzelbilder werden dann nicht automatisch nach einer gewissen Zeit weiter geschaltet, sondern über die Methoden frameIndex(int) oder showNext().

    • start

      public void start()
      Startet die Animation, falls sie vorher gestoppt wurde.
      Since:
      0.40.0
    • stop

      public void stop()
      Stoppt die Animation. Das aktuelle Einzelbild bleibt dauerhaft stehen.
      Since:
      0.40.0
    • toggle

      public void toggle()
      Stoppt oder startet je nach Zustand die Animation.
      Since:
      0.40.0
    • frameIndex

      @Setter public void frameIndex(int index)
      Setzt ein bestimmtes Einzelbild über seinen Index.
      Parameters:
      index - Der Index des Einzelbilds (0 ist der erste Index).
      Since:
      0.38.0
    • duration

      @Setter public void duration(double duration)
      Setzt die Dauer in Sekunden, die jedes Einzelbild aktiv bleibt.
      Parameters:
      duration - Die Dauer in Sekunden, die jedes Einzelbild aktiv bleibt.
      Since:
      0.40.0
    • width

      @API @Getter public double width()
      Gibt die Breite der Animation in Metern aus.
      Returns:
      Die Breite der Animation in Meter.
      See Also:
    • height

      @API @Getter public double height()
      Gibt die Höhe der Animation in Metern aus.
      Returns:
      Die Höhe der Animation in Meter.
      See Also:
    • addOnCompleteListener

      @API public void addOnCompleteListener(Runnable listener)
      Fügt einen Beobachter hinzu. Die run()-Methode wird immer wieder ausgeführt, sobald der letzte Zustand der Animation abgeschlossen wurde.
      Parameters:
      listener - Ein Runnable, dessen run()-Methode ausgeführt werden soll, sobald die Animation abgeschlossen ist (wird ausgeführt, bevor die Schleife von vorne beginnt).
    • showNext

      public void showNext()
      Zeigt das nächste Einzelbild der Animation an.

      Wenn das aktuelle Einzelbild das letzte ist, werden alle registrierten Beobacher benachrichtigt und der Index wird auf 0 zurückgesetzt. Andernfalls wird der Index um eins erhöht.

      Since:
      0.38.0
    • createFromSpritesheet

      @API public static Animation createFromSpritesheet(double frameDuration, BufferedImage image, int x, int y, double width, double height)
      Erzeugt eine Animation durch Angabe eines Spritesheets.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      image - Die bereits in den Speicher geladene Bilddatei des Spritesheets.
      x - Die Anzahl an Sprites in x-Richtung.
      y - Die Anzahl an Sprites in y-Richtung.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      Returns:
      Eine mit Einzelbildern bestückte Animation.
      Since:
      0.25.0
    • createFromSpritesheet

      @API public static Animation createFromSpritesheet(double frameDuration, String filePath, int x, int y, double width, double height)
      Erzeugt eine Animation durch Angabe eines Spritesheets.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      filePath - Der Dateipfad des Spritesheets.
      x - Die Anzahl an Sprites in x-Richtung.
      y - Die Anzahl an Sprites in y-Richtung.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      Returns:
      Eine mit Einzelbildern bestückte Animation.
    • createFromSpritesheet

      @API public static Animation createFromSpritesheet(double frameDuration, String filePath, double width, double height, int spriteWidth, int spriteHeight)
      Erzeugt eine Animation durch Angabe eines Spritesheets.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      filePath - Der Dateipfad des Spritesheets.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      spriteWidth - Die Breite des Sprites in Pixel.
      spriteHeight - Die Höhe des Sprites in Pixel.
      Returns:
      Eine mit Einzelbildern bestückte Animation.
      Since:
      0.25.0
    • createFromImages

      @API public static Animation createFromImages(double frameDuration, double width, double height, BufferedImage... images)
      Erzeugt eine Animation durch Angabe der einzelnen Dateipfade der zu verwendenden Einzelbilder.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      images - Die Einzelbilder.
      Returns:
      Eine mit Einzelbildern bestückte Animation.
      Since:
      0.26.0
    • createFromImages

      @API public static Animation createFromImages(double frameDuration, double width, double height, String... filePaths)
      Erzeugt eine Animation durch Angabe der einzelnen Dateipfade der zu verwendenden Einzelbilder.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      filePaths - Die einzelnen Dateipfade der zu verwendenden Einzelbilder.
      Returns:
      Eine mit Einzelbildern bestückte Animation.
    • createFromImagesPrefix

      @API public static Animation createFromImagesPrefix(double frameDuration, double width, double height, String directoryPath, String prefix)
      Lädt alle Bilddateien mit einem bestimmten Präfix in einem bestimmten Verzeichnis in eine Animation.
      Parameters:
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      directoryPath - Der Pfad zum Verzeichnis, in dem die einzuladenden Bilder liegen.
      prefix - Das Pfad-Präfix. Diese Funktion sucht alle Dateien mit dem gegebenen Präfix (im angegebenen Ordner) und fügt sie in aufsteigender Reihenfolge der Animation hinzu.
      Returns:
      Eine Animation aus allen Dateien, die mit dem Pfadpräfix beginnen.
    • createFromAnimatedGif

      @API public static Animation createFromAnimatedGif(String filepath, double width, double height)
      Erzeugt eine Animation aus einer animierter GIF-Datei.
      Parameters:
      filepath - Der Dateipfad der GIF-Datei.
      width - Die Breite der Animation in Meter.
      height - Die Höhe der Animation in Meter.
      Returns:
      Eine mit Einzelbildern bestückte Animation.