私は Actor を作成しましたが、action
およびact
メソッドを利用する方法がわかりません。基本的なJavadoc以外では、これらのメソッドに関する適切なチュートリアルは見つかりませんでした。
誰もが俳優の行動についてのコメントの例を提供できますか?
LibGDXの変更により、この回答は廃止されました。最新のドキュメントについては scene2d wiki page 。を参照してください
LibGDXには、さまざまなアクションが用意されています。彼らはcom.badlogic.gdx.scenes.scene2d.actions
パッケージ。アクションには3種類あると思います。
アニメーションアクションは、位置、回転、スケール、アルファなど、アクターのさまざまなプロパティを変更します。彼らです:
複合アクションは、複数のアクションを1つのアクションに結合します。
その他のアクション:
すべてのアクションには静的メソッド$
は、そのアクションのインスタンスを作成します。アニメーションアクションの作成例:
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
も指定できます。さまざまな実装があります。
Interpolator Javadoc:Interpolatorはアニメーションの変化率を定義します。これにより、基本的なアニメーション効果(アルファ、スケール、移動、回転)を加速、減速することができます。アクションに補間を設定するには:
action.setInterpolator(AccelerateDecelerateInterpolator.$());
インターポレーターを使用したアクションの準備ができたら、そのアクションをアクタに設定します。
actor.action(yourAction);
ステージ上のアクターに定義されたすべてのアクションを実際に実行するには、レンダリングメソッドでstage.act(...)を呼び出す必要があります。
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
Universal Tween Engineを試してみてください。使い方は簡単で本当に強力です...そして、すべてのコマンドをチェーンできるため、複雑なアニメーションを公園で散歩することができます。以下の例を参照してください。
手順:
1。ここからライブラリをダウンロード
2。アクセサクラスを作成します。時間を節約し、 こちら から私が使っていたものをつかむことができます。
3。GameクラスでTweenManagerを宣言します
public static TweenManager tweenManager;
createメソッドで:
tweenManager = new TweenManager();
renderメソッドで:
tweenManager.update(Gdx.graphics.getDeltaTime());
4。好きなように使用してください。例.
弾性補間を使用して、俳優を1.5秒で位置(100、200)に移動します。
Tween.to(actor, ActorAccesor.POSITION_XY, 1.5f)
.target(100, 200)
.ease(Elastic.INOUT)
.start(tweenManager);
アニメーションの複雑なシーケンスを作成します:
Timeline.createSequence()
// First, set all objects to their initial positions
.Push(Tween.set(...))
.Push(Tween.set(...))
.Push(Tween.set(...))
// Wait 1s
.pushPause(1.0f)
// Move the objects around, one after the other
.Push(Tween.to(...))
.Push(Tween.to(...))
.Push(Tween.to(...))
// Then, move the objects around at the same time
.beginParallel()
.Push(Tween.to(...))
.Push(Tween.to(...))
.Push(Tween.to(...))
.end()
// And repeat the whole sequence 2 times
.repeatYoyo(2, 0.5f)
// Let's go!
.start(tweenManager);
詳細 ここ
更新:デッドリンクを置き換え
クラス com.badlogic.gdx.math.Interpolation を使用するための便利なリンクを次に示します。したがって、たとえば、効果を持つmoveTo ationを作成するには、次のように簡単に使用できます。
myActor.addAction(Actions.moveTo(100, 200, 0.7f, Interpolation.bounceOut));
Actionsクラスのインポートを静的に設定した場合(手動で設定する必要があります):
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*;
その後、次のようなアクションを使用できます。
myActor.addAction(moveTo(100, 200, 0.7f, Interpolation.bounceOut));