我是一名AS3游戏开发者,正试图绕过Obj-c。 Obj-c我不确定的一件事是如何存储游戏数据。在AS3中我会做这样的事情......
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中设置我的游戏数据的最佳方式是什么?看起来我的选择是......
在上面的链接中使用可变字典方法
设置一个类,将数据保存为基本变量,但后来我不是 确定如何动态访问该类中的变量(就像我的 runOnFrame示例)
还是有更好的方法吗? XML?我正在使用Parse进行这个项目,看起来很棒,而且我想知道我是否应该直接使用parse存储我的数据,所以所有数据都可以从一开始就从数据库中访问,也许这样会很好开始的事情。话虽如此,我知道我希望在游戏中加入硬编码的数据,所以任何关于如何最好地做到这一点的想法都将受到赞赏!
答案 0 :(得分: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"];