1

我是一名AS3遊戲開發人員,他試圖讓自己的頭靠近Obj-c。我不確定Obj-c的一件事是如何存儲遊戲數據。在AS3我只想做這樣的事情......如何在Objective c中存儲常量數據?

static var playerData:Object = {position:{startX:200, startY:200}}; 

,我可以很容易地訪問這樣的...

var x1:Number = playerData['Position']['startX']; 

或者,如果我有我的數據,甚至可以做類似的多行這...

myData["runOnFrame" + currentImageIndex] 

我在哪裏可以訪問對象runOnFrame1,runOnFrame2等等。

昨天我問了一個問題關於上面如何設置初始數據結構,並得到了一些答案回來......

How would I create this AS3 data structure in objective c?

但使用可變字典建立基本的遊戲數據的方式似乎有點囉嗦至少可以說。 (最終),考慮到我通常在AS3中設置的內容,在Obj-c中設置我的遊戲數據的最佳方式是什麼?這似乎是我的選擇是......

  1. 使用可變字典方法在上面的鏈接

  2. 成立專班與保存的數據爲基礎瓦爾,但當時我不 肯定我如何能夠動態訪問該類中的變量(如我的 runOnFrame示例)

  3. 也許使用一個數組,但然後我失去了我認爲的標籤。

還是有更好的方法嗎? XML?我爲這個項目使用了Parse,這看起來很棒,而且我想知道是否應該直接使用parse存儲我的數據,因此所有數據都可以從數據庫中直接訪問,也許這將是一件好事開始的事情。話雖如此,我知道將會有我想要硬編碼到遊戲中的數據,所以有關如何最好地做到這一點的任何想法將不勝感激!

回答

1

您對初始化可變字典逐項太長的觀察結果當然是正確的。事實上,the upcoming version of Objective C will provide better syntax for this task

NSDictionary *playerData = @{ @"position" : @{@"startX":@200, @"startY":@200} }; 

然而,有一些東西,你可以做,直到這個漂亮的語法變爲可用:你可以準備一本字典很長的路要走,它保存在一個文件作爲屬性列表,並更換初始化代碼很長,只有plist的一次讀取,this answer to your previous question建議的方式:

playerData = [NSMutableDictionary dictionaryWithContentsOfFile:@"playerdata.plst"]; 
+0

什麼時候可以使用新的語法?感謝您的信息,使用可變字典的漫長過程似乎仍然存在很多混亂,我想如果我要這樣做,我不妨使用XML或者將數據直接放入Parse中,除非有其他的東西我錯過了。 – Phil 2012-07-07 13:41:44

+0

@Phil我不確定蘋果何時會將新編譯器與他們的Xcode工具集成在一起,但編譯器本身已經可用。我想我們應該在Xcode 4發佈後立即看到它。 – dasblinkenlight 2012-07-07 13:45:14

+0

@Phil就「漫長的道路」而言,嘗試做一個小樣本,將其保存到一個文件中,然後手動編輯該文件以添加更多符合相同plist方案的項目。這應該比XML更容易,因爲屬性列表與'dictionaryWithContentsOfFile:'方法的集成。 – dasblinkenlight 2012-07-07 13:46:44