2012-03-07 13 views
0

を移動する私は現在、このような多次元配列における移動のシーケンスとしてゲームデータを記憶しています、それは次のように定義される:配列ははるか勿論であるエレガントな方法ゲーム

private final int[][] gameMoves = {{1},{2},{0},{3},{1,4},{1,4,5},{2,4}} 

より大きい。

XMLファイルまたはSQLiteデータベースを使用してコードとは別にデータを格納してから、それをwhileループで取得する、より洗練された方法が必要だと思います。

XMLファイルを使用している場合、フォーマットはどのようなものになりますか、取得方法は何ですか?

SQLiteデータベースを使用している場合、ソースコードを実行する前にデータベース内のデータを取得する方法は何ですか?

いずれの例も高く評価されます。

+0

はそのゲームセッションのために保存するつもり移動していますか?または、次回にゲームを開くときにディスクに書き込んでおきたいのですか? – Danny

+0

@Dannyはこれが読み取り専用のゲームデータのようです。実行時に保存する必要はなく、取得するだけです。 – tcovo

+0

はい@tcovo。これはゲーム中に変更されない固定データです。 whileループを使用してリストまたは配列に一度取得するだけで済みます。これは、ゲームからゲームまで同じであり、ユーザは生成されません。 – newyorkgena

答えて

0

これは決して変更されないデータであれば、特にそれが頻繁に読み込まれる場合は、その読み方でパフォーマンスが低下するため、それを永続化する理由はありません。何かがあれば、おそらく 'gameMoves'を提供するゲームデータオブジェクトを含む別々のパッケージが勝者かもしれません。

概念的および/または要件の観点からの分離に縛られている場合、JSONはXMLファイルよりも多次元配列に直接結びついているため、良い方法ですそれはDBよりも機能します。例えば

、あなたのJSONファイルは次のようになります。

[1, 2, 3, [45, 6, 7], 8, [9, 10]] 

その後、最小限の手間でそれを解析するためにJSONライブラリを使用することができます。これらの数字場合

JSONArray data = new JSONArray(textFromFile); 

for(i = 0; i < data.length; ++i) { 
    //Read data 
} 

http://developer.android.com/reference/org/json/JSONArray.html

+0

これは実際にはゲームの動きのリストではありません。これは、画面に表示される要素のリストです。配列は要素が画面上に来る順序を保持します。各要素は、要素(モンスター、スパイク、フローティングプラットフォームなど)のタイプとその位置を画面上に保持します。これは、アクションサイドスクロールゲームです。私が気にしていたことは、オブジェクトの2D配列でした。この配列やオブジェクトのリストは、XMLファイルの値を繰り返し処理することで、ゲームの始めに作成/ポップします。私はどのXMLファイルを使用するのか、それをどのようにフォーマットしてアクセスするのかは分かりません。 – newyorkgena

+0

@newyorkgenaはい。したがって、後でintではなくオブジェクトの配列を持つことにした方が、変更がはるかに簡単になるので、JSONのアイデアです。説明するために上記の答えを更新する。 – JRaymond

0

を参照してください。定数を使うべき動きを表します。

const int MOVE_WAIT= 0; 
const int MOVE_LEFT= 1; 
const int MOVE_RIGHT = 2; 
const int MOVE_UP = 3; 
const int MOVE_DOWN = 4; 
const int[] SHOOORYUKEN = {MOVE_RIGHT, MOVE_DOWN, MOVE_RIGHT}; 

int[][] gameMoves = {{MOVE_LEFT},{MOVE_RIGHT},{MOVE_WAIT},{MOVE_UP},SHOOORYUKEN} 

等...

関連する問題