私は(あなたがゲーム、アニメーション会社のロゴを起動すると)スプラッシュ画面を作成するための最良の方法は何であるか疑問に思って。 After Effectsで.mp4スプラッシュ画面を作成しましたが、libgdxで表示する方法が見つかりません。スプラッシュ画面を作成する最善の方法は何ですか? .mp4ファイルを使用して再生できますか?Libgdx |スプラッシュ画面を作成するには?
答えて
は、スプラッシュスクリーンを作るのは非常に奇妙な方法で、おそらくそれを行うには、「最良の」方法として受け入れられるべきではありません。スプラッシュ画面の目的は、ゲームやアプリがバックグラウンドで読み込まれている間に一時的に何かを表示することです。読み込むアセットがたくさんある場合は、遅いデバイスでアプリを準備するのに最大10秒かかる可能性があります。受け入れ答えは、非同期的に資産を読み込むについて全く何も言っていない、と単純なカウンタが「ゲームコード」に進む前に存在していることを考えると、1はすべてがすでにロードされた後、このスプラッシュ画面がのみ表示されることを想定することができ、そうでない場合があるでしょう資産がロードされていることを保証せず、そうでなければクラッシュします。
個人的には、スプラッシュ画面を作成する「最良の」方法は、できるだけ早く表示することです。アプリをクリックして開くときは、1秒未満で行うことをお勧めします。これを行う方法は、あなたのスプラッシュ画面を表示する必要があるだけAsset
SをロードするためにAssetManager
を使用することです。次に、スプラッシュ画面が表示/アニメーション表示されている間に、AssetManager
に残りのコアコンポーネントを読み込むように指示します。終了したら、メインアプリに進みます。
このhereに関連するもう少し詳細な回答を掲載しました。libGDX WikiのAssetManager
にはかなり詳細なガイドがあります。
ここでのキーはassetManager.update()
です。これは2つのことを行います。 1の場合、AssetManager
にはアイテムのキューがロードされ、2の場合は完了するとtrue
が返されます。したがって、スプラッシュ画面が一定時間表示されていることを確認したい場合は、このようなことを行います。
public void render(float delta){
//code to render splash here
//check if assets are loaded and time greater than 10 seconds
if(assetManager.update() && TimeUtils.timeSinceMillis(startTime) > 10000){
app.setScreen(new MainScreen());
}
}
また、libGDX Animation
をお持ちの場合は、次のようになります。
if(assetManager.update() && animation.isAnimationFinished(startTime)){..}
新しいアクティビティを作成せずにスプラッシュスクリーンを実装するための非常に簡単な方法があります。あなたのスプラッシュスクリーンのための時間を設定する方法は、あなたのアプリが最初に現在の時刻に方法(create()
で)を開始だったときから違いを取ることです。あなたのクラスで直接開始時刻の変数を宣言します。
long startTime;
あなたは時間がTimeUtils.millis()
を使用して経過得ることができます。そのようなあなたのcreate()
メソッドにこのコードを入れてください:
@Override
public void create() {
// Initialize all your other variables here
startTime = TimeUtils.millis();
}
次に(すべての時間を実行している)あなたのrender()
方法では、経過時間を確認するためのコードを追加します。ここに例があります:
@Override
public void render() {
if(TimeUtils.millis() - startTime != 10000) {
// 10 seconds haven't passed yet
batch.begin();
// Creates a white background
Gdx.gl.glClearColor(1f, 1f, 1f, 1);
// Draw your animation here
batch.end();
} else {
// Put real game code here
}
}
上記のコードは、基本的に10秒が経過していないかどうかを確認します。そうであれば、あなたのアニメーションを表示します。そうでない場合は、画面がロードされた後にすべての通常のコードを入力します。
残念ながら、Libgdxに.mp4ファイルを直接表示する方法はありません。これはあなたのアプリの問題かもしれません。 1つの解決方法は、thisウェブサイトを使用して.mp4ファイルを.gif(動画ファイル)に変換することです。 this .gifスプリッタを使用して、それらのフレームをすべて多くのイメージファイルに抽出できます。ビデオからフレームを抽出する別の方法がある場合は、その方法を使用してください。いったんやったら、すべての画像をループしてアニメーションを作成します。
Texture[] textures = new Texture[NUMBER_OF_FRAMES];
for(Texture t : textures) {
batch.draw(t,
Gdx.graphics.getWidth()/2 - t.getWidth()/2,
Gdx.graphics.getHeight()/2 - t.getHeight()/2);
}
もちろん、あなたは常にだけで表示する方がはるかに簡単である1枚の静止画像を、使用することができ、そして、あなたのrender()
方法でそれを置く:ここでは何ができるかです。あなたの方法にかかわらず、この回答が役立つことを願っています!私は@AkashBhaveで受け入れ答えを言っている
アニメーションをスプライトにレンダリングすることを考えましたが、アニメーションにサウンドがあります。それはスプライトがたくさんあります(30fps * 10秒= 300 1920 x 1080画像)。 – Wyatt
イメージがたくさんあると言ったときに意味するものが得られますが、実際にそれを行う唯一の方法です。あなたはビデオをダウンスケーリングしてfpsを下げることができますが、それはそれです。しかし、サウンドについては、それを.mp3ファイルに変換してスプライトレンダリングと一緒に再生することができます。ここにサウンドドキュメントへのリンクがあります:https://github.com/libgdx/libgdx/wiki/Sound-effects – AkashBhave
はい、あなたは正しいと思います。助けてくれてありがとう! – Wyatt
- 1. Qtでスプラッシュ画面を作成するには?
- 2. スプラッシュ画面を変更する、スプラッシュ画面を複製する
- 3. httpリクエストの前に実際のスプラッシュ画面を作成する
- 4. Libgdx - ドロップダウンメニュー/設定画面の作成
- 5. スプラッシュ画面を追加するには
- 6. スプラッシュ画面を削除するには?
- 7. 後で使用するスプラッシュ画面でオブジェクトを作成
- 8. Androidのスプラッシュ画面でデータベースを作成する
- 9. VB.netプログラムのスプラッシュ画面を作成する方法
- 10. Androidスタジオでスプラッシュ画面を作成するバージョン2.2
- 11. j2meスプラッシュ画面
- 12. スプラッシュ画面。 (Angular2)
- 13. スプラッシュ画面C#
- 14. スプラッシュ画面がクラッシュする
- 15. スプラッシュ画面がクラッシュする
- 16. は、スプラッシュ画面を表示する
- 17. コルドバは、スプラッシュ画面が
- 18. スプラッシュ画面のコーディング
- 19. Silverlight OOBスプラッシュ画面
- 20. Default.pngスプラッシュ画面(iphone)
- 21. スプラッシュ画面のスレッド
- 22. pygameのスプラッシュ画面
- 23. エラー - スプラッシュ画面、アンドロイドアプリ
- 24. MonoDroidのスプラッシュ画面
- 25. Androidのスプラッシュ画面
- 26. Androidのスプラッシュ画面
- 27. MefBootStrapperとスプラッシュ画面
- 28. ランドスケープモードのスプラッシュ画面
- 29. Phonegapスプラッシュ画面 - Android
- 30. チタンフルスクリーン画像のスプラッシュ画面
.mp4アニメーションはどのくらいですか?それは数秒か長いアニメーションですか? – AkashBhave
@AkashBhave約10秒、30 fpsです。 – Wyatt
情報ありがとう!私の答えを今追加する。 – AkashBhave