Class Animation<T>

java.lang.Object
schule.ngb.zm.Constants
schule.ngb.zm.anim.Animation<T>
All Implemented Interfaces:
Updatable
Direct Known Subclasses:
AnimationFacade, AnimationGroup, AnimationSequence, CircleAnimation, ContinousAnimation, FadeAnimation, FillAnimation, MorphAnimation, MoveAnimation, RotateAnimation, StrokeAnimation, WaveAnimation

public abstract class Animation<T> extends Constants implements Updatable
  • Field Details

    • runtime

      protected int runtime
    • elapsedTime

      protected int elapsedTime
    • running

      protected boolean running
    • finished

      protected boolean finished
    • easing

      protected DoubleUnaryOperator easing
  • Constructor Details

    • Animation

      public Animation()
    • Animation

      public Animation(DoubleUnaryOperator easing)
    • Animation

      public Animation(int runtime)
    • Animation

      public Animation(int runtime, DoubleUnaryOperator easing)
  • Method Details

    • getRuntime

      public int getRuntime()
    • setRuntime

      public void setRuntime(int pRuntime)
    • getEasing

      public DoubleUnaryOperator getEasing()
    • setEasing

      public void setEasing(DoubleUnaryOperator pEasing)
    • getAnimationTarget

      public abstract T getAnimationTarget()
    • start

      public final void start()
    • stop

      public final void stop()
    • initialize

      public void initialize()
    • finish

      public void finish()
    • await

      public final void await()
    • isActive

      public boolean isActive()
      Description copied from interface: Updatable
      Gibt an, ob das Objekt gerade auf Aktualisierungen reagiert.

      Wie mit dieser Information umgegangen wird, ist nicht weiter festgelegt. In der Regel sollte eine aufrufende Instanz zunächst prüfen, ob das Objekt aktiv ist, und nur dannUpdatable.update(double) aufrufen. Für implementierende Klassen ist es aber gegebenenfalls auch sinnvoll, bei Inaktivität den Aufruf von update(double) schnell abzubrechen:

      
       void update( double delta ) {
           if( !isActive() ) {
               return;
           }
      
           // Aktualisierung ausführen..
       }
       
      Specified by:
      isActive in interface Updatable
      Returns:
      true, wenn das Objekt aktiv ist, false andernfalls.
    • update

      public void update(double delta)
      Description copied from interface: Updatable
      Änderung des Zustandes des Objekts abhängig vom Zeitintervall delta in Sekunden.

      Die kann, muss aber nicht, die Rückgabe von Updatable.isActive() berücksichtigen.

      Specified by:
      update in interface Updatable
      Parameters:
      delta - Zeitintervall seit dem letzten Aufruf (in Sekunden).
    • animate

      public abstract void animate(double e)
      Setzt den Fortschritt der Animation auf den angegebenen Wert.

      e liegt in der Regel zwischen 0 und 1. Je nach verwendeten Easing Funktion kann der Wert aber in Ausnahmefällen unter 0 oder über 1 liegen. Die step() Methode muss dem nicht Rechnung tragen und kann wenn sinnvoll den e Wert auf [0, 1] limitieren:

      
       e = Constants.limit(e, 0, 1);
       
      Parameters:
      e - Fortschritt der Animation, nachdem die Easing-Funktion angewandt wurde.
    • addListener

      public void addListener(AnimationListener listener)
    • removeListener

      public void removeListener(AnimationListener listener)