Этот ответ устарел из-за изменений в LibGDX. Актуальную документацию смотрите на вики-сцене scene2d .
В LibGDX есть различные доступные для вас действия. Они в com.badlogic.gdx.scenes.scene2d.actions
упаковке. Я бы сказал, что есть 3 вида действий:
- Анимационные действия
- Составные действия
- Другие действия
Анимационные действия изменяют различные свойства вашего актера, такие как местоположение, вращение, масштаб и альфа. Это:
- FadeIn - меняет альфа вашего актера с текущей альфа актера на 1
- FadeOut - меняет альфу вашего актера с текущей альфа-версии актера на 0
- FadeTo - меняет альфа вашего актера с текущей альфы актера на конкретное значение
- MoveBy - перемещает вашего актера на определенную сумму
- MoveTo - перемещает вашего актера в определенное место
- RotateBy - поворачивает вашего актера на определенный угол
- RotateTo - поворачивает вашего актера до определенный угол
- ScaleTo - масштабирует вашего актера до определенного масштабного коэффициента
Составные действия объединяют несколько действий в одно действие, а это:
- Параллельно - выполнять заданные действия параллельно - все действия сразу
- Последовательность - выполнять заданные действия последовательно - одно за другим
Другие действия:
- Повтор - повторяет данное действие n раз
- Навсегда - повторяет данное действие навсегда
- Задержка - задерживает выполнение данного действия на определенное время
- Удалить - удаляет данного Актера со сцены
Каждое действие имеет статический метод $
, который создает экземпляр этого действия.
Пример создания анимационных действий:
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
Пример создания более сложной последовательности действий:
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
);
Анимационные действия также позволяют указать Interpolator
. Существуют различные реализации:
- AccelerateDecelerateInterpolator
- AccelerateInterpolator
- AnticipateInterpolator
- DecelerateInterpolator
- LinearInterpolator
- OvershootInterpolator
Интерполятор Javadoc: Интерполятор определяет скорость изменения анимации. Это позволяет ускорить, замедлить основные эффекты анимации (альфа, масштабировать, перевести, повернуть) и т. Д.
Чтобы установить интерполятор на ваше действие:
action.setInterpolator(AccelerateDecelerateInterpolator.$());
Когда у вас есть готовое действие с интерполятором, вы устанавливаете это действие на своего актера:
actor.action(yourAction);
Чтобы фактически выполнить все действия, определенные для актеров на сцене, вы должны вызвать stage.act (...) в вашем методе рендеринга:
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();