Package pi.actor

Class StatefulAnimation<State>

java.lang.Object
pi.actor.Actor
pi.actor.StatefulAnimation<State>
Type Parameters:
State - Typ der Zustände, zwischen denen in der Animation gewechselt werden soll.
All Implemented Interfaces:
FrameUpdateListenerRegistration, KeyStrokeListenerRegistration, MouseClickListenerRegistration, MouseScrollListenerRegistration
Direct Known Subclasses:
PlayerCharacter, StatefulAnimatedGifAnimation, StatefulImagesAnimation, StatefulImagesPrefixAnimation, StatefulPlayerCharacter, StatefulSpritesheetAnimation

public class StatefulAnimation<State> extends Actor
Ein animierter Actor, der mehrere Zustände haben kann (laufen (links/rechts), stehen (links/rechts), springen (links/rechts), etc.).

Anwendungsbeispiel

 
 StatefulAnimation sf = new StatefulAnimation();
 sf.addState(Animation.createFromAnimatedGif("running.gif",
 "running");
 sf.addState(Animation.createFromAnimatedGif("jumping.gif", "jumping");
 scene.add(sf);
 sf.state("running");
 
Author:
Michael Andonie
See Also:
  • Field Details

    • width

      protected double width
      Die Breite in Meter.
    • height

      protected double height
      Die Höhe in Meter.
    • frameDuration

      protected double frameDuration
  • Constructor Details

    • StatefulAnimation

      public StatefulAnimation(double width, double height, double frameDuration)
      Parameters:
      width - Die Breite in Meter der animierten Figur.
      height - Die Höhe in Meter der animierten Figur.
      frameDuration - Die Dauer in Sekunden, die die Einzelbilder aktiv bleiben.
    • StatefulAnimation

      public StatefulAnimation(double width, double height)
      Parameters:
      width - Die Breite in Meter der animierten Figur.
      height - Die Höhe in Meter der animierten Figur.
  • Method Details

    • width

      @API @Getter public double width()
      Gibt die Breite in Meter der animierten Figur zurück.
      Returns:
      Die Breite in Meter der animierten Figur.
    • height

      @API @Getter public double height()
      Gibt die Höhe in Meter der animierten Figur zurück.
      Returns:
      Die Höhe in Meter der animierten Figur.
    • addState

      @API public void addState(State state, Animation stateAnimation)
      Fügt dieser Animation einen neuen Zustand zu hinzu.
      Parameters:
      state - Der Zustand, unter dem die Animation gespeichert wird.
      stateAnimation - Die Animation für diesen Zustand. Kann normal eingeladen werden, allerdings sollte das übergebene Objekt nicht selbst in einer Scene angemeldet sein.
      See Also:
    • state

      @API @Setter public void state(State state)
      Setzt den Zustand der Animation. Die Animation des neuen Zustands beginnt in jedem Fall von vorne.
      Parameters:
      state - Der Name des Zustands, der gesetzt werden soll.
      See Also:
    • changeState

      @API public void changeState(State state)
      * Eine animierte Figur mit mehreren Zuständen, deren Animationen durch Angabe Ändert den Zustand der Animation. Die Animation des neuen Zustands beginnt nur von vorne, wenn der gesetzte Zustand nicht derselbe ist, wie der aktuelle Zustand.
      Parameters:
      state - Der Name des Zustands, der gesetzt werden soll.
      See Also:
    • hasState

      @API public boolean hasState(State state)
      Gibt an, ob ein bestimmter Zustandsname bereits in dieser Animation genutzt wird.
      Parameters:
      state - Der zu testende State.
      Returns:
      true: Diese Animation hat einen Zustand mit dem Namen stateName.
      false: Diese Animation hat keinen Zustand mit dem Namen stateName.
    • state

      @API @Getter public State state()
      Gibt den aktuellen Zustand der Animation aus.
      Returns:
      Der aktuelle Zustand der Animation. Dies ist der String, der beim Hinzufügen der aktuell aktiven Animation als State-Name angegeben wurde. Ist null, wenn die Animation noch keine Zustände hat.
    • flipHorizontal

      @API @Setter public void flipHorizontal(boolean flipHorizontal)
      Setzt, ob alle Animationen horizontal gespiegelt dargestellt werden sollen. Hiermit lassen sich zum Beispiel Bewegungsrichtungen (links/rechts) einfach umsetzen.
      Parameters:
      flipHorizontal - Ob die Animation horizontal geflippt dargestellt werden soll.
      See Also:
    • flipVertical

      @API @Setter public void flipVertical(boolean flipVertical)
      Setzt, ob alle Animationen vertikal gespiegelt dargestellt werden sollen.
      Parameters:
      flipVertical - Ob die Animation horizontal geflippt dargestellt werden soll.
      See Also:
    • isFlipHorizontal

      @API public boolean isFlipHorizontal()
      Gibt an, ob das Objekt horizontal gespiegelt ist.
      Returns:
      true, wenn das Objekt gerade horizontal gespiegelt ist. Sonst false.
    • isFlipVertical

      @API public boolean isFlipVertical()
      Gibt an, ob das Objekt vertikal gespiegelt ist.
      Returns:
      true, wenn das Objekt gerade vertikal gespiegelt ist. Sonst false.
    • animationPaused

      @API @Setter public void animationPaused(boolean animationPaused)
      Setzt, ob diese StatefulAnimation animiert werden soll.
      Parameters:
      animationPaused - Ist dieser Wert true, so läuft die Animation normal weiter. Ist dieser Wert false, so läuft die Animation nicht und keine automatischen Zustandsübergänge passieren.
      See Also:
    • isAnimationPaused

      @API public boolean isAnimationPaused()
      Gibt an, ob die Animation derzeit pausiert ist.
      Returns:
      true, wenn die Animation gerade pausiert ist. Sonst false.
      See Also:
    • stateTransition

      @API @Setter public void stateTransition(State stateFrom, State stateTo)
      Setzt eine neue Übergangsregel für die Zustände der Animation.
      Jedes Mal, wenn die Animation vom Von-Zustand einmal durchlaufen wurde, geht die Animation automatisch in den Ziel-Zustand über.
      Per Default gilt: Ein zugefügter Zustand geht nach Abschluss seiner Animation "in sich selbst" über. Also Von-Zustand = Ziel-Zustand. Effektiv ist das ein Loop.
      Diese Methode überschreibt die bisherige Übergangsregel für den entsprechenden Von-Zustand.
      Parameters:
      stateFrom - Der Von-Zustand.
      stateTo - Der Ziel-Zustand.
    • frameDuration

      @API @Setter public void frameDuration(State state, double frameDuration)
      Setzt die Dauer, die ein Frame einer bestimmten Animation verweilt.
      Parameters:
      state - Der State, für den die Frame-Dauer neu gesetzt werden soll.
      frameDuration - Die Zeit (in Sekunden), die jeder einzelne Frame der Animation des entsprechenden States verweilen soll, bis der Frame gewechselt wird.
    • size

      @API @Setter public void size(double width, double height)
      Setzt die Höhe und Breite der Animation neu. Ändert die physikalischen Eigenschaften (Masse etc.).
      Parameters:
      width - Neue Breite für das Rechteck.
      height - Neue Höhe für das Rechteck.