2011-03-15 15 views
1

Android用ペアの簡単なゲームを作ろうとしています。アプリの起動時にすべての画像をプリロードする

プログラム構造

Menu.java(メニューの活動が最初にロードされた)(メニューによって開始されたゲームの活動、)

Game.java
GameThread.java(gameloopを処理し、呼び出しはGameViewでの処理をレンダリング)
GameView.javaは())の画面に

Graphics.java(店舗ロードされたイメージのすべての描画を処理します

問題

問題は、15枚のカードのセットをアニメーション化するために必要な多くの画像があるとゲームの活動のために私が必要とするすべてのビットマップをロードする、2秒までかかることです。私は、メニューとゲームのアクティビティの間に大きな読み込み時間を避けるために、Graphicsクラスに必要なすべてのビットマップをプリロードすること、アプリケーションが最初に起動する新しいスレッド(メニューアクティビティ)、および何らかの読み込みアニメーションを表示することを考えていました。

メニューアクティビティからゲームアクティビティにグラフィックスストアを渡すことができないため、メニューアクティビティから静的オブジェクトにする必要があります(メニューアクティビティからアクセスするにはMenu.graphicsを使用します)。 ..)。これはそれを行うのはひどい方法ですか?私はいつも静的なオブジェクトを使うのは悪い考えだと思った?その他の選択肢は何ですか?

ご協力いただきありがとうございます。

答えて

0

これにはAsncTaskを使用することをおすすめします。また、メインのAndroidのdocサイトにあるPainless Threadingという記事にも素敵です。

+0

ありがとうございます。AsyncTaskは間違いなく便利です。他のアクティビティからプリロードされたリソースを使用する場合は、単にGraphicsを静的に格納するオブジェクトを作成するか、より良い方法があります(アクティビティ間でGraphicsオブジェクトを渡すことはできません)。 – woodstock365

+0

はい、静的変数は完全に受け入れられます。 –

+0

ありがとう!画像を保存する最善の方法を尋ねることはできますか?私は、R.drawable.someAssetを指すために配列を使用するかどうかは、実際には画像ではなくポインタを格納していることになります。イメージはすべてビットマップにロードする必要がありますか? また、xmlレイアウト内にあるimageViewsに使用されるリソースは、xmlレイアウトが新しいインスタンスをロードするのではなく、既に読み込まれているリソースを取得するようにしますか?コードを使って画像を動的に追加する必要がありますか?XMLのシングルトンから画像を参照する方法はありますか? – ThePerson

関連する問題