Package ea.actor

Class StatefulAnimation<State>

java.lang.Object
ea.actor.Actor
ea.actor.StatefulAnimation<State>
Type Parameters:
State - Typ der Zustände, zwischen denen in der Animation gewechselt werden soll.
All Implemented Interfaces:
FrameUpdateListenerContainer, KeyListenerContainer, MouseClickListenerContainer, MouseWheelListenerContainer

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.setState("running");
Author:
Michael Andonie
See Also:
  • Constructor Details

    • StatefulAnimation

      public StatefulAnimation(float width, float height)
  • Method Details

    • getWidth

      @API public float getWidth()
    • getHeight

      @API public float getHeight()
    • addState

      @API public void addState(State state, Animation stateAnimation)
      Fügt dieser Animation einen neuen Zustand zu hinzu.
      Parameters:
      state - Der Name für den neu hinzuzufügenden State. Unter diesem Namen wird er ab sofort in der Figur beschrieben.
      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:
    • setState

      @API public void setState(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)
      Ä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 bestimmer 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.
    • getCurrentState

      @API public State getCurrentState()
      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.
    • setFlipHorizontal

      @API public void setFlipHorizontal(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:
    • setFlipVertical

      @API public void setFlipVertical(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.
    • setAnimationPaused

      @API public void setAnimationPaused(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:
    • setStateTransition

      @API public void setStateTransition(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.
    • setFrameDuration

      @API public void setFrameDuration(State state, float 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.
    • setSize

      @API public void setSize(float width, float 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.
    • render

      @Internal public void render(Graphics2D g, float pixelPerMeter)
      Description copied from class: Actor
      Rendert das Objekt am Ursprung.
      • Die Position ist (0|0).
      • Die Roation ist 0.
      Specified by:
      render in class Actor
      Parameters:
      g - Das zeichnende Graphics-Objekt
      pixelPerMeter - Pixel pro Meter.