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
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Fügt dieser Animation einen neuen Zustand zu hinzu.void
changeState
(State state) Ändert den Zustand der Animation.Gibt den aktuellen Zustand der Animation aus.float
float
getWidth()
boolean
Gibt an, ob ein bestimmer Zustandsname bereits in dieser Animation genutzt wird.boolean
Gibt an, ob die Animation derzeit pausiert ist.boolean
Gibt an, ob das Objekt horizontal gespiegelt ist.boolean
Gibt an, ob das Objekt vertikal gespiegelt ist.void
render
(Graphics2D g, float pixelPerMeter) Rendert das Objekt am Ursprung.void
setAnimationPaused
(boolean animationPaused) Setzt, ob dieseStatefulAnimation
animiert werden soll.void
setFlipHorizontal
(boolean flipHorizontal) Setzt, ob alle Animationen horizontal gespiegelt dargestellt werden sollen.void
setFlipVertical
(boolean flipVertical) Setzt, ob alle Animationen vertikal gespiegelt dargestellt werden sollen.void
setFrameDuration
(State state, float frameDuration) Setzt die Dauer, die ein Frame einer bestimmten Animation verweilt.void
setSize
(float width, float height) Setzt die Höhe und Breite der Animation neu.void
Setzt den Zustand der Animation.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.Methods inherited from class ea.actor.Actor
addCollisionListener, addCollisionListener, addCollisionListener, addMountListener, addUnmountListener, animateOpacity, animateParticle, applyForce, applyForce, applyImpulse, applyImpulse, applyTorque, contains, createDistanceJoint, createPrismaticJoint, createRevoluteJoint, createRopeJoint, createWeldJoint, getAngularDamping, getAngularVelocity, getBodyType, getCenter, getCenterRelative, getCollisions, getDensity, getFrameUpdateListeners, getFriction, getGravityScale, getKeyListeners, getLayer, getLayerPosition, getLinearDamping, getMass, getMouseClickListeners, getMouseWheelListeners, getOpacity, getPhysicsHandler, getPosition, getRestitution, getRotation, getVelocity, getX, getY, isGrounded, isMounted, isRotationLocked, isVisible, moveBy, moveBy, overlaps, remove, removeMountListener, removeUnmountListener, renderBasic, resetMovement, rotateBy, setAngularDamping, setAngularVelocity, setBodyType, setCenter, setCenter, setDensity, setFixture, setFixtures, setFixtures, setFriction, setGravityScale, setLayerPosition, setLinearDamping, setOpacity, setPhysicsHandler, setPosition, setPosition, setRestitution, setRotation, setRotationLocked, setVelocity, setVisible, setX, setY
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ea.event.FrameUpdateListenerContainer
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeat
Methods inherited from interface ea.event.KeyListenerContainer
addKeyListener, removeKeyListener
Methods inherited from interface ea.event.MouseClickListenerContainer
addMouseClickListener, removeMouseClickListener
Methods inherited from interface ea.event.MouseWheelListenerContainer
addMouseWheelListener, removeMouseWheelListener
-
Constructor Details
-
StatefulAnimation
public StatefulAnimation(float width, float height)
-
-
Method Details
-
getWidth
@API public float getWidth() -
getHeight
@API public float getHeight() -
addState
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
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
Ä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 bestimmer 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
.
-
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. Istnull
, 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. Sonstfalse
.
-
isFlipVertical
@API public boolean isFlipVertical()Gibt an, ob das Objekt vertikal gespiegelt ist.- Returns:
true
, wenn das Objekt gerade vertikal gespiegelt ist. Sonstfalse
.
-
setAnimationPaused
@API public void setAnimationPaused(boolean animationPaused) Setzt, ob dieseStatefulAnimation
animiert 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
@API public boolean isAnimationPaused()Gibt an, ob die Animation derzeit pausiert ist.- Returns:
true
, wenn die Animation gerade pausiert ist. Sonstfalse
.- See Also:
-
setStateTransition
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.
-
setFrameDuration
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
Description copied from class:Actor
Rendert das Objekt am Ursprung.- Die Position ist (0|0).
- Die Roation ist 0.
-