Defined in Module impact.animation, inherits from ig.Class


// Create animation
var animSheet = new ig.AnimationSheet( 'sheet.png', 16, 16 );
var anim = new ig.Animation( animSheet, 0.1, [0,1,2,3,2,1] );

// Update animation to current frame

// Draw current frame
anim.draw( x, y );


An ig.Animation object takes care of animating an Entity or Background Map tile. Frames from an animation sheet – an image with all animation frames – are drawn as specified by the animations frameTime and sequence.

In most cases you shouldn't need to create an animation object by yourself, but instead use the ig.Entity's .addAnim() method.

Read more in the Animations Tutorial.


new ig.Animation( sheet, frameTime, sequence, [stop] )



Alpha opacity of the animation from 0 to 1. The default is 1 (fully opaque).


New in 1.15

Rotation of the animation in radians. The center of rotation is specified by .pivot.

.flip.x, .flip.y

Booleans, indicating whether the animation should be drawn flipped on the x and/or y axis


The current frame number, set by the .update() method


An integer, specifying how often the animation has been played through since the last call to .rewind().

Note that even if the animation has stopped at the last frame, the .loopCount is updated as if the animation was still running.

.pivot.x, .pivot.y

New in 1.15

Center of the rotation when using .angle. The default is half the .width and .height of the AnimationSheet, i.e. the center of the animation frame.


The current tile of the animation sheet, set by the .update() method


.draw( x, y)

Draws the current animation frame at the given screen coordinates

.gotoFrame( f )

Jumps to frame number f


Jumps to a random frame


Rewinds the animation to its first frame and resets the .loopCount

This method returns the animation itself. This is useful when switching between animations. E.g:

// In an entities .update() method
this.currentAnim = this.anims.jump.rewind();


Updates the animation to the current frame, based on its frameTime