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
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 Summary
FieldsModifier and TypeFieldDescriptionprotected doubleprotected doubleDie Höhe in Meter.protected doubleDie Breite in Meter. -
Constructor Summary
ConstructorsConstructorDescriptionStatefulAnimation(double width, double height) StatefulAnimation(double width, double height, double frameDuration) -
Method Summary
Modifier and TypeMethodDescriptionvoidFügt dieser Animation einen neuen Zustand zu hinzu.voidanimationPaused(boolean animationPaused) Setzt, ob dieseStatefulAnimationanimiert werden soll.voidchangeState(State state) * Eine animierte Figur mit mehreren Zuständen, deren Animationen durch Angabe Ändert den Zustand der Animation.voidflipHorizontal(boolean flipHorizontal) Setzt, ob alle Animationen horizontal gespiegelt dargestellt werden sollen.voidflipVertical(boolean flipVertical) Setzt, ob alle Animationen vertikal gespiegelt dargestellt werden sollen.voidframeDuration(State state, double frameDuration) Setzt die Dauer, die ein Frame einer bestimmten Animation verweilt.booleanGibt an, ob ein bestimmter Zustandsname bereits in dieser Animation genutzt wird.doubleheight()Gibt die Höhe in Meter der animierten Figur zurück.booleanGibt an, ob die Animation derzeit pausiert ist.booleanGibt an, ob das Objekt horizontal gespiegelt ist.booleanGibt an, ob das Objekt vertikal gespiegelt ist.voidsize(double width, double height) Setzt die Höhe und Breite der Animation neu.state()Gibt den aktuellen Zustand der Animation aus.voidSetzt den Zustand der Animation.voidstateTransition(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.doublewidth()Gibt die Breite in Meter der animierten Figur zurück.Methods inherited from class pi.actor.Actor
addCollisionListener, addCollisionListener, addCollisionListener, addMountListener, addUnmountListener, angularDamping, angularDamping, angularVelocity, angularVelocity, animateOpacity, animateParticle, applyForce, applyForce, applyForce, applyImpulse, applyImpulse, applyImpulse, applyRotationImpulse, applyTorque, awake, bodyType, bodyType, center, center, center, centerRelative, collisions, color, color, color, complementaryColor, contains, createDistanceJoint, createPrismaticJoint, createRevoluteJoint, createRopeJoint, createWeldJoint, density, density, fixture, fixtures, fixtures, frameUpdateListeners, friction, friction, gravityScale, gravityScale, hide, isGrounded, isMounted, isRotationLocked, isVisible, keyStrokeListeners, layer, layerPosition, layerPosition, linearDamping, linearDamping, listenerBundle, lockRotation, makeDynamic, makeKinematic, makeParticle, makeSensor, makeStatic, mass, mouseClickListeners, mouseScrollListeners, moveBy, moveBy, opacity, opacity, overlaps, position, position, position, positionformatted, remove, removeMountListener, removeUnmountListener, resetMovement, restitution, restitution, rotateBy, rotation, rotation, rotationLocked, show, sleep, toggleVisible, velocity, velocity, visible, x, x, y, yMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface pi.event.FrameUpdateListenerRegistration
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeat, repeat, repeat, repeat, repeatMethods inherited from interface pi.event.KeyStrokeListenerRegistration
addKeyStrokeListener, removeKeyStrokeListenerMethods inherited from interface pi.event.MouseClickListenerRegistration
addMouseClickListener, removeMouseClickListenerMethods inherited from interface pi.event.MouseScrollListenerRegistration
addMouseScrollListener, removeMouseScrollListener
-
Field Details
-
width
protected double widthDie Breite in Meter. -
height
protected double heightDie 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
Gibt die Breite in Meter der animierten Figur zurück.- Returns:
- Die Breite in Meter der animierten Figur.
-
height
Gibt die Höhe in Meter der animierten Figur zurück.- Returns:
- Die Höhe in Meter der animierten Figur.
-
addState
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
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
* 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
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 NamenstateName.
false: Diese Animation hat keinen Zustand mit dem NamenstateName.
-
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. Istnull, wenn die Animation noch keine Zustände hat.
-
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
Setzt, ob alle Animationen vertikal gespiegelt dargestellt werden sollen.- Parameters:
flipVertical- Ob die Animation horizontal geflippt dargestellt werden soll.- See Also:
-
isFlipHorizontal
Gibt an, ob das Objekt horizontal gespiegelt ist.- Returns:
true, wenn das Objekt gerade horizontal gespiegelt ist. Sonstfalse.
-
isFlipVertical
Gibt an, ob das Objekt vertikal gespiegelt ist.- Returns:
true, wenn das Objekt gerade vertikal gespiegelt ist. Sonstfalse.
-
animationPaused
Setzt, ob dieseStatefulAnimationanimiert werden soll.- Parameters:
animationPaused- Ist dieser Werttrue, so läuft die Animation normal weiter. Ist dieser Wertfalse, so läuft die Animation nicht und keine automatischen Zustandsübergänge passieren.- See Also:
-
isAnimationPaused
Gibt an, ob die Animation derzeit pausiert ist.- Returns:
true, wenn die Animation gerade pausiert ist. Sonstfalse.- See Also:
-
stateTransition
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. AlsoVon-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
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
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.
-