Package pi.animation

Class ValueAnimator<T>

java.lang.Object
pi.animation.ValueAnimator<T>
Type Parameters:
T - Der Typ der Werte, die animiert werden, z.B. Double
All Implemented Interfaces:
FrameListener

public class ValueAnimator<T> extends Object implements FrameListener
Ein Animator, der Werte über eine bestimmte Zeitspanne interpoliert und dabei einen Consumer mit den berechneten Zwischenwerten aufruft.

Der ValueAnimator ermöglicht es, Animationen zu erstellen, indem er kontinuierlich Werte zwischen einem Start- und Endwert berechnet und diese an eine Consumer-Funktion übergibt. Die Berechnung erfolgt durch einen Interpolator, der die konkreten Zwischenwerte bestimmt.

Die Klasse unterstützt verschiedene Animationsmodi:

  • SINGLE - Die Animation wird einmal ausgeführt und beendet sich dann.
  • REPEATED - Die Animation wird kontinuierlich wiederholt.
  • PING_PONG - Die Animation läuft vorwärts und rückwärts in einer Schleife.

Zusätzlich kann die Animation pausiert, der Fortschritt manuell gesetzt und Completion-Listener registriert werden, die beim Abschluss der Animation (nur im SINGLE-Modus) aufgerufen werden.

See Also:
  • Constructor Details

    • ValueAnimator

      public ValueAnimator(double duration, Consumer<T> consumer, Interpolator<T> interpolator, AnimationMode mode, FrameListenerRegistration parent)
      Parameters:
      duration - Die Dauer der Animation in Sekunden.
      consumer - Die Funktion, die bei jedem Einzelbild mit dem interpolierten Wert aufgerufen wird.
      interpolator - Der Interpolator, der die Werte zwischen Start und Ende berechnet.
      mode - Der Animationsmodus (z.B. SINGLE für einmalige Ausführung).
      parent - Die Figur, Szene oder Ebene, die diesen Animator über die Methode FrameListenerRegistration.addFrameListener(FrameListener) registriert, damit der Animator bei Abschluss der Animation abmeldet werden kann.
    • ValueAnimator

      public ValueAnimator(double duration, Consumer<T> consumer, Interpolator<T> interpolator, FrameListenerRegistration parent)
      Parameters:
      duration - Die Dauer der Animation in Sekunden.
      consumer - Die Funktion, die bei jedem Einzelbild mit dem interpolierten Wert aufgerufen wird.
      interpolator - Der Interpolator, der die Werte zwischen Start und Ende berechnet.
      parent - Die Figur, Szene oder Ebene, die diesen Animator über die Methode FrameListenerRegistration.addFrameListener(FrameListener) registriert, damit der Animator bei Abschluss der Animation abmeldet werden kann.
  • Method Details

    • setPaused

      @API public void setPaused(boolean paused)
      Setzt, ob die ValueAnimation pausiert werden soll.
      Parameters:
      paused - true: Die Animation wird unterbrochen, bis das flag umgesetzt wird. false: Die Animation wird wieder aufgenommen (sollte sie unterbrochen worden sein)
      See Also:
    • isPaused

      @API public boolean isPaused()
      Gibt an, ob der Animator pausiert ist.
      Returns:
      Ob der Animator pausiert ist.
      See Also:
    • setProgress

      @API public void setProgress(double progress)
      Setzt den aktuellen Fortschritt des Animators händisch.
      Parameters:
      progress - Der Fortschritt, zu dem der Animator gesetzt werden soll. 0 ist Anfang der Animation, 1 ist Ende der Animation. Werte kleiner 0 bzw. größer als 1 sind nicht erlaubt.
    • onFrame

      public void onFrame(double pastTime)
      Description copied from interface: FrameListener
      Diese Methode wird bei jedem Einzelbild eines angemeldeten Objekts erneut aufgerufen.
      Specified by:
      onFrame in interface FrameListener
      Parameters:
      pastTime - Die Zeit in Sekunden, die seit der letzten Aktualisierung vergangen ist.
    • addCompletionListener

      public ValueAnimator<T> addCompletionListener(Consumer<T> listener)