2012-03-07 53 views
0

我目前存儲遊戲數據,例如在多維陣列移動的序列,其被定義爲:存儲的數值數據如遊戲優雅的方式移動

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

陣列是當然多大。

我覺得應該有一個更優雅的方式來做到這一點,有可能使用一個XML文件或SQLite數據庫代碼分開存儲的數據,然後在while循環檢索它。

如果使用XML文件,會是什麼形式和什麼是回收的方法?

如果使用SQLite數據庫,這將是執行源代碼之前得到數據庫裏面的數據的方式嗎?

的任何示例,將不勝感激。

+0

是隻移動將被存儲爲遊戲會話?或者你是否想在下次打開遊戲時將它們寫入磁盤進行閱讀? – Danny 2012-03-07 19:15:58

+0

@Danny看起來像是用於只讀遊戲數據 - 永遠不需要在運行時存儲,只能被檢索。 – tcovo 2012-03-07 19:23:17

+0

是@tcovo。這是固定的數據,在遊戲中不會改變。它只需要使用while循環一次檢索到列表或數組中。這在遊戲中保持不變,並且不是用戶生成的。 – newyorkgena 2012-03-07 19:35:30

回答

0

如果這是從來沒有得到改變的數據,確實沒有任何理由繼續存在,特別是如果它被頻繁讀取,因爲你會在其閱讀服用性能的下降。如果有的話,也許是一個單獨的包含遊戲數據對象的軟件包,每個遊戲數據對象都提供'gameMoves',可能是贏家。或者,如果你與概念和/或需求觀點分離,JSON可能是一個很好的方法,因爲它比XML文件更直接地綁定到多維數組,而且肯定更容易與之合作的不僅僅是數據庫。

例如,您的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 2012-03-07 22:45:23

+0

@newyorkgena是的。因此,JSON的想法,因爲如果你決定有一個對象的數組,而不是以後整數更容易改變。更新上面的答案來描述。 – JRaymond 2012-03-08 17:16:43

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} 

等等