public class AnimationsManager extends Manager implements AnimationsEndeReagierbar
Der AnimationsManager handelt benutzerfreundlich einfache Animationen.
Er arbeitet intern mit unterschiedlichen Objekten der Klasse Animierer.
Es koennen theoretisch problemlos auch mehrer Animationen gekoppelt werden. Denn diese arbeitet nicht mit positionSetzen()
sondern mit relativen Verschiebungen ueber die Methode verschieben()
.
Animierer
Modifier and Type | Method and Description |
---|---|
void |
animationBeendenVon(Raum raum)
Beendet alle Animationen von einem Raum-Objekt.
|
void |
endeReagieren(Animierer an)
Die implementierte endeReagieren-Methode.
|
void |
geradenAnimation(Raum ziel,
Punkt orientierung)
Noch staerker vereinfachte Variante der
geradenAnimation() -Methode. |
void |
geradenAnimation(Raum ziel,
Punkt orientierung,
int zielGeschwindigkeit)
Vereinfachte Variante der
geradenAnimation() -Methode. |
void |
geradenAnimation(Raum ziel,
Punkt orientierung,
int zielGeschwindigkeit,
int dauerInMS)
Animiert ein Objekt auf einer einfachen Halbgerade.
|
static AnimationsManager |
getAnimationsManager()
Diese Methode gibt den einen und einzigen existierenden Animationsmanager aus.
|
static int |
intervall(int z)
Berechnet eine Zahl, die entweder die Eingabe selbst oder 1 ist, sofern die Eingabe kleiner als 1 ist.
|
void |
kreisAnimation(Raum ziel)
Bis ins Laecherliche vereinfachte Methode zum zum Kreisanimieren.
|
void |
kreisAnimation(Raum ziel,
Punkt zentrum)
Extrem vereinfachte Methode zum zum Kreisanimieren.
|
void |
kreisAnimation(Raum ziel,
Punkt zentrum,
boolean loop,
int umlaufzeit)
Animiert ein Raum-Objekt auf einer Kreisbahn.
|
void |
kreisAnimation(Raum ziel,
Punkt zentrum,
int umlaufzeit)
Vereinfachte Methode zum Kreisanimieren.
|
static void |
neutralize()
Beendet saemtliche laufenden Animationen
|
void |
streckenAnimation(Raum ziel,
int laufDauer,
boolean wiederholen,
boolean geschlossen,
Punkt... strecke)
Animiert ein Raum-Objekt auf einer Strecke aus einer bestimmten Zahl linearer Teilstrecken.
|
void |
streckenAnimation(Raum ziel,
int laufDauer,
boolean wiederholen,
Punkt... strecke)
Leicht vereinfachte Form der Streckanimationsmethode.
|
void |
streckenAnimation(Raum ziel,
int laufDauer,
Punkt... strecke)
Vereinfachte Form der Streckanimationsmethode.
|
void |
streckenAnimation(Raum ziel,
Punkt... strecke)
Stark vereinfachte Form der Streckanimationsmethode.
|
abmelden, alleAbmelden, anhalten, anmelden, anmelden, fontExistiert, hatAktiveTicker, intervallSetzen, istAngemeldet, kill, starten
public static AnimationsManager getAnimationsManager()
Diese Methode gibt den einen und einzigen existierenden Animationsmanager aus.
Dies ist ein realisiserter Singleton.
public static void neutralize()
Beendet saemtliche laufenden Animationen
public void kreisAnimation(Raum ziel, Punkt zentrum, boolean loop, int umlaufzeit)
Animiert ein Raum-Objekt auf einer Kreisbahn.
ziel
- Das zu animierende Raum-Objekt. Hierbei ist dessen Zentrum auf der Kreisbahn.zentrum
- Das Zentrum des Animationskreisesloop
- Gibt an, ob die Animation einfach ist oder nicht.umlaufzeit
- Gibt in Millisekunden an, wie lange eine Umdrehung um das Zentrum dauern soll.public void kreisAnimation(Raum ziel, Punkt zentrum, int umlaufzeit)
Vereinfachte Methode zum Kreisanimieren.
Hierbei wird die gesamte Bewegung automatisch wiederholt.
ziel
- Das zu animierende Raum-Objekt. Hierbei ist dessen Zentrum auf der Kreisbahn.zentrum
- Das Zentrum des Animationskreisesumlaufzeit
- Gibt in Millisekunden an, wie lange eine Umdrehung um das Zentrum dauern soll.kreisAnimation(Raum, Punkt, boolean, int)
public void kreisAnimation(Raum ziel, Punkt zentrum)
Extrem vereinfachte Methode zum zum Kreisanimieren.
Hierbei wird nicht nur die gesamte Bewegung automatisch wiederholt, sondern auch die Umlaufzeit auf 1,5 Sekunden voreingestellt.
ziel
- Das zu animierende Raum-Objekt. Hierbei ist dessen Zentrum auf der Kreisbahn.zentrum
- Das Zentrum des AnimationskreiseskreisAnimation(Raum, Punkt, boolean, int)
,
kreisAnimation(Raum, Punkt, int)
public void kreisAnimation(Raum ziel)
Bis ins Laecherliche vereinfachte Methode zum zum Kreisanimieren.
Hierbei wird nicht nur die gesamte Bewegung automatisch wiederholt und die Umlaufzeit auf 1,5 Sekunden voreingestellt, sondern auch noch der Mittelpunkt der Kreisbewegung automatisch ermittelt. Er wird sich 150 Koordinatenpunkte unterhalb des Mittelpunktes des zu animierenden Raum-Objektes befinden.
ziel
- Das zu animierende Raum-Objekt. Hierbei ist dessen Zentrum auf der Kreisbahn.kreisAnimation(Raum, Punkt, boolean, int)
,
kreisAnimation(Raum, Punkt, int)
,
kreisAnimation(Raum, Punkt)
public void streckenAnimation(Raum ziel, int laufDauer, boolean wiederholen, boolean geschlossen, Punkt... strecke)
Animiert ein Raum-Objekt auf einer Strecke aus einer bestimmten Zahl linearer Teilstrecken.
Ein Anwendungsbeispiel:
//Instanziiertes, nicht null-wertiges Raum-Objekt.
Raum objekt;
//Erstellen eines Managers. In der Klasse “Game” wird bereits einer bereitgestellt (Muss also dort nicht extra instanziiert werden!!)
AnimationsManager manager = new AnimationsManager();
//Ausfuehren der Methode des Managers
manager.streckenAnimation(objekt, 4000, true, true, new Punkt(100, 100), new Punkt(200, 100), new Punkt(200, 200));
Hierbei wird das Objekt auf der Strecke zwischen
- Seinem Mittelpunkt
- Dem Punkt (100|100)
- Dem Punkt (200|100)
- Und dem Punkt (200|200)
bewegt und anschliessend wieder zurueck zu seinem alten Mittelpunkt, da sowohl wiederholen
als auch geschlossen true
ist.
Diese Bewegung (“einmal den Kreislauf”) dauert 4 Sekunden (= 4000 Millisekunden).
ziel
- Das zu animierende Raum-Objekt. Sein Zentrum (ueber die Methode zentrum()
) wird die Strecke abwandern (und natuerlich mit ihm die ganze Figur).laufDauer
- Die Zeit in Millisekunden, die vergeht, bis die Bewegung dieser Animation alle “Ettapen”-Punkte einmal abgegangen ist.wiederholen
- Gibt an, ob diese Animation in Dauerschleife wiederholt werden soll, oder ob sie nur einmal bis zum letzten Punkt sich abspielen soll, und anschliessend sich automatisch selbst beenden soll.geschlossen
- Gibt an, ob bei Wiederholung die Animation vom letzten wieder zum ersten Punkt laufen soll oder ob sie vom letzten zum vorletzten (usw) rueckwaerts weiterlaufen soll, bis zum Anfang und anschliessend wieder wechseln soll, also sozusagen immer wieder hin und her pendeln soll.false
ist.strecke
- Eine beliebige Anzahl von “Ettappen”-Punkten. Das Zielobjekt wird sich zwischen diesen bewegen, wobei die Bewegung zwischen 2 Punkten immer gleich lang ist, unnabhaengig von ihrer Entfernung zueinander!public void streckenAnimation(Raum ziel, int laufDauer, boolean wiederholen, Punkt... strecke)
Leicht vereinfachte Form der Streckanimationsmethode.
Hierbei wird, sofern wiederholt wird, automatisch in einem Kreislauf animiert.
ziel
- Das zu animierende Raum-Objekt. Sein Zentrum (ueber die Methode zentrum()
) wird die Strecke abwandern (und natuerlich mit ihm die ganze Figur).laufDauer
- Die Zeit in Millisekunden, die vergeht, bis die Bewegung dieser Animation alle “Ettapen”-Punkte einmal abgegangen ist.wiederholen
- Gibt an, ob diese Animation in Dauerschleife wiederholt werden soll, oder ob sie nur einmal bis zum letzten Punkt sich abspielen soll, und anschliessend sich automatisch selbst beenden soll.strecke
- Eine beliebige Anzahl von “Ettappen”-Punkten. Das Zielobjekt wird sich zwischen diesen bewegen, wobei die Bewegung zwischen 2 Punkten immer gleich lang ist, unnabhaengig von ihrer Entfernung zueinander!streckenAnimation(Raum, int, boolean, boolean, Punkt...)
public void streckenAnimation(Raum ziel, int laufDauer, Punkt... strecke)
Vereinfachte Form der Streckanimationsmethode.
Hierbei wird automatisch in einem geschlossenen Kreislauf wiederholt.
ziel
- Das zu animierende Raum-Objekt. Sein Zentrum (ueber die Methode zentrum()
) wird die Strecke abwandern (und natuerlich mit ihm die ganze Figur).laufDauer
- Die Zeit in Millisekunden, die vergeht, bis die Bewegung dieser Animation alle “Ettapen”-Punkte einmal abgegangen ist.strecke
- Eine beliebige Anzahl von “Ettappen”-Punkten. Das Zielobjekt wird sich zwischen diesen bewegen, wobei die Bewegung zwischen 2 Punkten immer gleich lang ist, unnabhaengig von ihrer Entfernung zueinander!streckenAnimation(Raum, int, boolean, boolean, Punkt...)
,
streckenAnimation(Raum, int, boolean, Punkt...)
public void streckenAnimation(Raum ziel, Punkt... strecke)
Stark vereinfachte Form der Streckanimationsmethode.
Hierbei wird die Animation automatisch in einem geschlossenen Kreislauf wiederholt und die Zeit fuer die Bewegung zwischen den einzelnen Punkten betraegt jeweils eine Sekunde.
ziel
- Das zu animierende Raum-Objekt. Sein Zentrum (ueber die Methode zentrum()
) wird die Strecke abwandern (und natuerlich mit ihm die ganze Figur).strecke
- Eine beliebige Anzahl von “Ettappen”-Punkten. Das Zielobjekt wird sich zwischen diesen bewegen, wobei die Bewegung zwischen 2 Punkten immer gleich lang ist, unnabhaengig von ihrer Entfernung zueinander!streckenAnimation(Raum, int, boolean, boolean, Punkt...)
,
streckenAnimation(Raum, int, boolean, Punkt...)
,
streckenAnimation(Raum, int, Punkt...)
public void geradenAnimation(Raum ziel, Punkt orientierung, int zielGeschwindigkeit, int dauerInMS)
Animiert ein Objekt auf einer einfachen Halbgerade.
Die Animation endet nach dem Ablauf ihrer ihr zugesprochenen Dauer (in Millisekunden).
Ein Beispiel:
//Das zu animierende, instanziierte Raum-Objekt
Raum raum;
//Der AnimationsManager. (Im Zweifelsfall bereits in der Klasse Game als Variable Vorhanden)
AnimationsManager manager;
//Die Animation einleiten
manager.geradenAnimation(raum, new Punkt(300, 200), 1000, 3000);
Dies erstellt eine Geraden-Animation mit konstanter Geschwindigkeit, die:
- Vom Mittelpunkt des raum
-Animationsobjekts anfaengt
- Durch den Punkt (300|200) verlaeuft
- Diesen Punkt nach 1000 Millisekunden (= 1 Sekunde) erreicht und
- 3000 Millisekunden (= 3 Sekunden) andauert, und dann automatisch beendet wird.
Diese Methode hat den Vorteil, das sie nie dauerhaft Speicherressourcen verbraucht, da keine dieser Animationen (im Gegensatz zu zB einer Kreis-Animation) unbegrenzt lange laufen kann.
ziel
- Das zu animierende Raum-Objektorientierung
- Der Punkt, durch den die Animationslinie verlaeuft.zielGeschwindigkeit
- Die Zeit, die vergeht (in millisekunden), bis die Animation den Zielpunkt erreicht.dauerInMS
- Die Dauer in Millisekunden, bis die Animation beendet wird. ISt diese geringer als die zielGeschwindigkeit
, so erreicht die Animation nicht den Orientierungspunkt (der Eingabeparamter orientierung
)public void geradenAnimation(Raum ziel, Punkt orientierung, int zielGeschwindigkeit)
Vereinfachte Variante der geradenAnimation()
-Methode.
HIer wird bereits voreingestellt, das die Animation andauert, bis das Objekt den Orientierungspunkt erreicht hat und noch einmal die selbe Strecke abgegangen ist (sprich, doppelt so lange laufzeit wie die als Argument mitgegebene zielGeschwindigkeit
.
ziel
- Das zu animierende Raum-Objektorientierung
- Der Punkt, durch den die Animationslinie verlaeuft.zielGeschwindigkeit
- Die Zeit, die vergeht (in millisekunden), bis die Animation den Zielpunkt erreicht.geradenAnimation(Raum, Punkt, int, int)
public void geradenAnimation(Raum ziel, Punkt orientierung)
Noch staerker vereinfachte Variante der geradenAnimation()
-Methode.
Der Weg bis zum orientierung
-Punkt wird in einer Sekunde abgegangen, und die Animation selbst dauert 2 Sekunden.
ziel
- Das zu animierende Raum-Objektorientierung
- Der Punkt, durch den die Animationslinie verlaeuft.geradenAnimation(Raum, Punkt, int, int)
,
geradenAnimation(Raum, Punkt, int)
public void animationBeendenVon(Raum raum)
Beendet alle Animationen von einem Raum-Objekt.
Gibt es keine Animation von diesem, so passiert gar nichts.
raum
- Das Raum-Objekt, dessen Animation(en) von diesem Manager beendet werden soll(en)public void endeReagieren(Animierer an)
Die implementierte endeReagieren-Methode.
Hierin wird jede Referenz auf die beendete Animation geloescht.
endeReagieren
in interface AnimationsEndeReagierbar
an
- Die gerade geendetet Animationpublic static int intervall(int z)
Berechnet eine Zahl, die entweder die Eingabe selbst oder 1 ist, sofern die Eingabe kleiner als 1 ist.
z
- Die einzugebende Zahlz < 1
, sonst ist die Rueckgabe z
selbst.