2013-12-19 18 views
6

私はLibGDXでゲームを作っています。私のゲームが始まると、ゲームの白い画面が描かれる前に黒い画面が表示されます。アンドロイド用Libgxはメイン画面の前で黒く表示されます

私のアプリの背景の背景をandroid:windowBackgroundと別の色に設定しました。これは自分のアプリののstyle.xmlにあり、プレビューウィンドウにその色が表示されます。しかし、私のアプリのメイン画面がロードされる直前に、メイン画面を表示する前に画面が黒くなります。

ゲームのメインアクティビティとゲームクラスにGdx.gl.glClearColor(1,1,1,1)を設定しようとしましたが、メイン画面を描画する前に黒い画面がまだ表示されています。

私がこれを修正するために見つけた唯一の方法は、android:windowDisablePreviewをtrueに設定することですが、プレビューウィンドウをすべて無効にします。

プレビューを無効にしないとこれを解決する方法はありますか?

+0

アプリを起動するとすぐにすべてのアセットを読み込んでオブジェクトを作成していますか? – SteveL

+0

@SteveL私は、画面を拡張する私のクラスの 'show()'メソッドでアセットをロードし、オブジェクトを作成しています。オブジェクトの作成をクラスのコンストラクタに移動しようとしましたが、それは助けになりませんでした。黒い画面は矛盾していますが、それは可能性の高いメモリが原因です。 – jjtcomkid

答えて

2

オブジェクトの作成をコンストラクタに移すだけでなく、ActivityListのコンストラクタでApplicationListenerオブジェクトの作成をシフトする必要があります。

黒い画面は、Activity.onCreate()呼び出しの開始からApplicationListener.show()呼び出しの終了までの時間の遅延が原因と考えられます。
タイマーを使用して測定するか、単純にSystem.currentTimeMillis()を使用して測定してみてください。

この問題を解決しない場合は、状況を改善するはずです。

+0

私はそれを試みましたが、アプリケーションが初期化されるまでテクスチャのロードを開始できません。 Activity.onCreate()メソッドの終了からApplicationListener.create()メソッドの終了までに約800msかかります。テクスチャと画面の読み込みを取り除くと、読み込み時間が半分になり、黒い画面が消えてしまいます。私が間違っていることはありますか? – jjtcomkid

+0

はい。標準的な方法があります。テクスチャの読み込みは、作成メソッド内にあるべきではありません。プログレスバーを持つスタンドアロンの読み込み画面が必要です(ゲーマーが不平を言うことはありません:D)。ローディング画面を描画するために必要なテクスチャだけが開始時に読み込まれる必要があります。だから、黒い画面は問題ではないでしょう。がんばろう。 –

関連する問題