I have made my Actor, but I am unclear on how to take advantage of the action
and act
methods. Outside of the basic Javadoc, I have not found a good tutorials on these methods.
Can anyone provide an example with comments for actions on actors?
This answer is being rendered obsolete because of changes in LibGDX. For up to date documentation see scene2d wiki page.
There are various available actions in LibGDX ready for you. They are in com.badlogic.gdx.scenes.scene2d.actions
package. I would say that there are 3 kinds of actions:
Animation actions modify various properties of your actor, such as location, rotation, scale and alpha. They are:
Composite actions combine multiple actions in one action, there are:
Other actions:
Every action has a static method $
which creates instance of that Action.
Example of creating animation actions:
MoveTo move = MoveTo.$(200, 200, 0.5f); //move Actor to location (200,200) in 0.5 s
RotateTo rotate = RotateTo.$(60, 0.5f); //rotate Actor to angle 60 in 0.5 s
Example of creating more complex action sequence:
Sequence sequence = Sequence.$(
MoveTo.$(200, 200, 0.5f), //move actor to 200,200
RotateTo.$(90, 0.5f), //rotate actor to 90°
FadeOut.$(0.5f), //fade out actor (change alpha to 0)
Remove.$() //remove actor from stage
);
Animation actions also let you specify Interpolator
. There are various implementations:
Interpolator Javadoc: An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated etc. To set interpolator to your action:
action.setInterpolator(AccelerateDecelerateInterpolator.$());
When you have your action with interpolator ready, then you set that action to your actor:
actor.action(yourAction);
To actually execute all actions defined for actors on stage, you have to call stage.act(...) in your render method:
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();