Skip to content

Animations

liv edited this page Aug 28, 2023 · 5 revisions

The game engine has a pre-made AnimationRenderComponent (code) which can be used to show animations on entities. This is a thin wrapper around libGDX's animation system, so it is recommended to read that before using animations.

Usage

Creating animations

Animations have to be created in libGDX's atlas format to be compatible with the animation component. You can generate an animation atlas from a series of still images, where each image represents a frame of animation. Some recommended tools that support this:

Adding animations to the game

Add an AnimationRenderComponent to the entity you want to render, then register each animation that's in the texture atlas. Start and stop an animation with startAnimation() and stopAnimation().

AnimationRenderComponent animator = new AnimationRenderComponent("player.atlas");
Entity player = new Entity().addComponent(animator);

// The animation name must match the name in the atlas
animator.addAnimation("walk", 0.1f);
animator.addAnimation("attack", 0.1f);
animator.addAnimation("jump", 0.1f);

// Now, we can start/stop the animatifon at any time
animator.startAnimation("walk");
animator.startAnimation("jump");
animator.stopAnimation();

Scaling Animations

The AnimationRenderComponent can be initialised with a scaleFactor to scale each frame of the animation. This is useful to prevent warping when an animation contains inconsistent frame sizes.

AnimationRenderComponent animator = new AnimationRenderComponent("player.atlas", 16f);
Clone this wiki locally