Libgdx 画面間でアニメーションを変更しようとしています。カスタム アニメーション (フェードイン、フェードアウトなど) を作成したいと考えています。誰かが私に手がかりを与えることができますか?Libgdx コードで遷移の実装が見つからないようです。
4 に答える
これが私がすることです:
FadeIn は非常に単純です。これを、fadein Screens show() に追加するだけです。
stage.getRoot().getColor().a = 0;
stage.getRoot().addAction(fadeIn(0.5f));
FadeOut は少しトリッキーです。画面をすぐに切り替えたくないので、game.setScreen(newScreen) を呼び出す代わりに、フェードアウト Screen で次のようなメソッドを作成します。
public void switchScreen(final Game game, final Screen newScreen){
stage.getRoot().getColor().a = 1;
SequenceAction sequenceAction = new SequenceAction();
sequenceAction.addAction(fadeOut(0.5f));
sequenceAction.addAction(run(new Runnable() {
@Override
public void run() {
game.setScreen(newScreen);
}
}));
stage.getRoot().addAction(sequenceAction);
}
このように、フェードアウトの間、画面の切り替えを遅らせます。
Scene2Dとユニバーサルトゥイーンエンジンを使用して、いくつかのスライディングトランジションを実装しました。ここにサンプルコードがあります。
http://www.netthreads.co.uk/2012/02/09/libgdx-scene2d-demo-with-scene-transitions/
更新:この記事は、スライディングトランジションを実装するために私が採用したアプローチを示しています。下部に一連のデモへのリンクがありますhttps://github.com/alistairrutherford/libgdx-demos
デモの作成方法については明確な説明がありますが、少なくともMavenの基本的な理解とセットアップ方法が必要になります。
同様の方法を実装しました。Gustavo Steigert のおかげで、私は彼のブログから多くのことを学びました。ここでは、フェードインとフェードアウトのシーケンスを使用した彼の例を見つけることができます。
http://steigert.blogspot.in/2012/02/3-libgdx-tutorial-scene2d.html
彼のブログを完全にフォローして物事の流れをよりよく理解し、各投稿の最後にある投稿のソース コードのタグを見つけることができます。