2012-03-26 2 views
0

私はJavaゲームをWP7に移植しています。私たちのゲームにはたくさんの画像があり、JAVAでそれらを読み込むために、 "Resources.getImage(IMG_BULLETS);のような関数を使用します。ここで、IMG_BULLETSはイメージのID(int)です。WP7でリソースリストを実装する

しかし、WP7では、ロードするために画像のパス(文字列)を渡す必要があります。

今私の質問は:

  • INT-String型のマッピングを達成するためにどのように?私は手動でIdをパスに変更する必要はありません。

考えられる解決策の1つは、イメージパスとそのIDを持つ.txtファイルを持ってそれを解析することです。しかし、私は彼らがこれをはるかに良い解決策であると確信しています。

注:画像やその他のファイル用のマルチレベルフォルダ構造もあります。

答えて

0

実際にリソースをintで参照したい場合は、そのパスにどのようにマップする必要があります。私が知る限り、あなたの資産をクロールする方法はありません。たとえ可能であったとしても、同じインデックス順を取るかどうか、あなたの列挙をやり直す必要があります。

ポートしてコードを変更しようとするといくつかのハードルが発生します。もう1つは、contentManager.Loadがタイプを取ることです(例えば、txtファイルを使用していても1つはタイプします)。contentManager.Load<Texture2D>('path')はTexture2Dを返します。

適切なアセットを取得するメソッドを取得する独自のシングルトン 'Resources'クラスを作成することもできますが、somekindのxmlまたはtxtファイルを使用してマッピングする必要があります。しかし、これはあなた自身のより多くの問題(90 MBのメモリ制限と本当に長いロード時間)である最初からロードされているすべての資産を必要とします。

App Hubのゲーム開発セクションをご覧になり、game state exampleを見て、XNAでゲームがうまく機能するように構築する方法を見てみましょう。

+0

すぐに返信いただきありがとうございましたLayoric。私が描画部分を実装しているので、井戸戻り型は問題ではありません。はい、 'Resources'クラスをxml/txtマッピングで作成することは可能ですが、最初にリソースをロードする必要はありません。私はそれが必要なときにロードします。私が何か不足している場合は、私を修正してください。 – Priyank

+0

これは、実装方法によって異なります。マッピングをロードし、その結果をContent.Load()内で使用する場合は、必要に応じて実行できます。これにより柔軟性が増します。もともと私はそれについて考えていたとき、私は問題のXMLの解析中におそらくすべてのリソースをロードすると思っていた。残念ながら、これはリソースに対する手動マッピングの要件を削除しません。 –

+0

はい私はマッピングを手動で行う必要があると思います。それのためにいくつかのスクリプトを書く:) – Priyank

関連する問題