Class Animation
java.lang.Object
de.gurkenlabs.litiengine.graphics.animation.Animation
- All Implemented Interfaces:
ILaunchable
,IUpdateable
public class Animation
extends java.lang.Object
implements IUpdateable, ILaunchable
The
Animation
class keeps track of the current keyframe which is used to animate a visual element.
It iterates over all defined keyframes with respect to their duration and provides information
for the related AnimationController
which keyframe should currently be rendered.- See Also:
IAnimationController.getCurrent()
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_FRAME_DURATION
The default frame duration in milliseconds.Constructor Summary
Constructors Constructor Description Animation(Spritesheet spritesheet, boolean loop, boolean randomizeStart, int... keyFrameDurations)
Initializes a new instance of theAnimation
class.Animation(Spritesheet spritesheet, boolean loop, int... keyFrameDurations)
Initializes a new instance of theAnimation
class.Animation(java.lang.String spriteSheetName, boolean loop, boolean randomizeStart, int... keyFrameDurations)
Initializes a new instance of theAnimation
class.Animation(java.lang.String name, Spritesheet spritesheet, boolean loop, boolean randomizeStart, int... keyFrameDurations)
Initializes a new instance of theAnimation
class.Animation(java.lang.String name, Spritesheet spritesheet, boolean loop, int... keyFrameDurations)
Initializes a new instance of theAnimation
class.Method Summary
Modifier and Type Method Description int[]
getKeyFrameDurations()
Gets an array of this animation's keyframe durations by streaming the keyframe list and mapping the durations to an int array.java.lang.String
getName()
Gets the name of this animation.Spritesheet
getSpritesheet()
int
getTotalDuration()
Gets to aggregated duration of allKeyFrame
s in this animation.boolean
isLooping()
Gets a value indicating whether this animation intended to loop.boolean
isPaused()
Gets a value indicating whether this animation is currently paused.boolean
isPlaying()
Gets a value indicating whether this animation is currently playing.void
onKeyFrameChanged(KeyFrameListener listener)
void
pause()
Pauses the playback of this animation.void
removeKeyFrameListener(KeyFrameListener listener)
void
restart()
Restarts this animation at its first frame.void
setDurationForAllKeyFrames(int frameDuration)
Sets the frame duration for all keyframes in this animation to the specified value.void
setKeyFrameDurations(int... keyFrameDurations)
Sets the specified durations for the keyframes at the index of the defined arguments.void
setLooping(boolean loop)
Sets the looping behavior for this animation.void
start()
Starts the operation of this instance.void
terminate()
Terminates the operation of this instance.void
unpause()
Un-pauses the playback of this animation.void
update()
This method is called by the game loop on all objects that are attached to the loop.
Field Details
DEFAULT_FRAME_DURATION
public static final int DEFAULT_FRAME_DURATIONThe default frame duration in milliseconds.- See Also:
- Constant Field Values
Constructor Details
Animation
public Animation(java.lang.String spriteSheetName, boolean loop, boolean randomizeStart, int... keyFrameDurations)Initializes a new instance of theAnimation
class.- Parameters:
spriteSheetName
- The name of the spritesheet used by this animation.loop
- A flag indicating whether the animation should be looped or played only once.randomizeStart
- A flag indicating whether this animation should choose a random keyframe to start.keyFrameDurations
- The duration of each keyframe.
Animation
public Animation(Spritesheet spritesheet, boolean loop, boolean randomizeStart, int... keyFrameDurations)Initializes a new instance of theAnimation
class.- Parameters:
spritesheet
- The spritesheet used by this animation.loop
- A flag indicating whether the animation should be looped or played only once.randomizeStart
- A flag indicating whether this animation should choose a random keyframe to start.keyFrameDurations
- The duration of each keyframe.
Animation
Initializes a new instance of theAnimation
class.- Parameters:
spritesheet
- The spritesheet used by this animation.loop
- A flag indicating whether the animation should be looped or played only once.keyFrameDurations
- The duration of each keyframe.
Animation
public Animation(java.lang.String name, Spritesheet spritesheet, boolean loop, boolean randomizeStart, int... keyFrameDurations)Initializes a new instance of theAnimation
class.- Parameters:
name
- The name of this animation.spritesheet
- The spritesheet used by this animation.loop
- A flag indicating whether the animation should be looped or played only once.randomizeStart
- A flag indicating whether this animation should choose a random keyframe to start.keyFrameDurations
- The duration of each keyframe.
Animation
public Animation(java.lang.String name, Spritesheet spritesheet, boolean loop, int... keyFrameDurations)Initializes a new instance of theAnimation
class.- Parameters:
name
- The name of this animation.spritesheet
- The spritesheet used by this animation.loop
- A flag indicating whether the animation should be looped or played only once.keyFrameDurations
- The duration of each keyframe.
Method Details
getTotalDuration
public int getTotalDuration()Gets to aggregated duration of allKeyFrame
s in this animation.- Returns:
- The total duration of a single playback.
getName
public java.lang.String getName()Gets the name of this animation.- Returns:
- The name of this animation.
getSpritesheet
isLooping
public boolean isLooping()Gets a value indicating whether this animation intended to loop.- Returns:
- True if this animation will loop; otherwise false.
isPaused
public boolean isPaused()Gets a value indicating whether this animation is currently paused.- Returns:
- True if this animation is currently pause; otherwise false.
isPlaying
public boolean isPlaying()Gets a value indicating whether this animation is currently playing.- Returns:
- True if this animation is currently playing; otherwise false.
pause
public void pause()Pauses the playback of this animation.- See Also:
isPaused()
,unpause()
unpause
public void unpause()Un-pauses the playback of this animation.- See Also:
isPaused()
,pause()
setDurationForAllKeyFrames
public void setDurationForAllKeyFrames(int frameDuration)Sets the frame duration for all keyframes in this animation to the specified value.- Parameters:
frameDuration
- The frameduration for all keyframes.
setKeyFrameDurations
public void setKeyFrameDurations(int... keyFrameDurations)Sets the specified durations for the keyframes at the index of the defined arguments.e.g.: If this animation defines 5 keyframes, the caller of this method can provide 5 individual durations for each keyframe.
- Parameters:
keyFrameDurations
- The durations to be set on the keyframes of this animation.
getKeyFrameDurations
public int[] getKeyFrameDurations()Gets an array of this animation's keyframe durations by streaming the keyframe list and mapping the durations to an int array.- Returns:
- An array of this animation's keyframe durations.
setLooping
public void setLooping(boolean loop)Sets the looping behavior for this animation.- Parameters:
loop
- if true, restart the animation infinitely after its last frame.
onKeyFrameChanged
removeKeyFrameListener
start
public void start()Description copied from interface:ILaunchable
Starts the operation of this instance.- Specified by:
start
in interfaceILaunchable
restart
public void restart()Restarts this animation at its first frame.terminate
public void terminate()Description copied from interface:ILaunchable
Terminates the operation of this instance.- Specified by:
terminate
in interfaceILaunchable
update
public void update()Description copied from interface:IUpdateable
This method is called by the game loop on all objects that are attached to the loop. It's called on every tick of the loop and the frequency can be configured using theClientConfiguration
.- Specified by:
update
in interfaceIUpdateable
- See Also:
ClientConfiguration.setMaxFps(int)