1

我是一名 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 等等。

我昨天问了一个关于如何设置上面的初始数据结构的问题,并得到了一些答案......

我将如何在目标 c 中创建这个 AS3 数据结构?

但至少可以说,使用可变字典设置基本游戏数据的方式似乎有点冗长。

所以(最后)谈到这个问题,考虑到我通常如何在 AS3 中进行设置,我在 Obj-c 中设置游戏数据的最佳方式是什么?看来我的选择是...

  1. 在上面的链接中使用可变字典方法

  2. 设置一个将数据保存为基本变量的类,但是我不确定如何动态访问该类中的变量(例如我的 runOnFrame 示例)

  3. 也许使用一个数组,但后来我失去了我认为的标签。

还是有更好的方法?XML?我在这个项目中使用 Parse,这看起来很棒,我想知道我是否应该直接使用 parse 存储我的数据,所以从一开始就从数据库访问所有数据,也许这将是一个很好的选择开始的事情。话虽如此,我知道我想将一些数据硬编码到游戏中,所以任何关于如何最好地做到这一点的想法都将不胜感激!

4

1 回答 1

1

您对逐项初始化可变字典太长的观察当然是正确的。事实上,即将发布的 Objective C 版本将为这项任务提供更好的语法

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

但是,在这个漂亮的语法可用之前,您可以做一些事情:您可以准备一个很长的字典,将它作为属性列表保存在一个文件中,并用单次读取 plist 替换长的初始化代码,这样回答您之前的问题建议:

playerData = [NSMutableDictionary dictionaryWithContentsOfFile:@"playerdata.plst"];
于 2012-07-07T12:02:43.487 回答