【问题标题】:How to use plist files in cocos2d and iOS?如何在 cocos2d 和 iOS 中使用 plist 文件?
【发布时间】:2012-07-30 16:42:21
【问题描述】:
我有一个游戏,基本上是突破克隆。
我厌倦了以编程方式制作关卡,所以我得到了这个编辑器 = Scenedesigner,它可以让你在屏幕上放置精灵、节点等。
问题 - 我如何在我的游戏中加载该 .plist 文件并让我的游戏理解它?
例如,我为我的 sprite 使用复合对象 - 例如 ball 属于包含 ccsprite 作为属性的 Ball 类,这将如何工作?
【问题讨论】:
标签:
objective-c
ios
cocos2d-iphone
【解决方案1】:
不确定您是如何创建 plist 的,但这篇关于使用 NSDictionary 的帖子应该可以回答您的问题:https://stackoverflow.com/a/1760384/388412
...NSArray 基本相同,两个类都可以存储对象和读取和写入文件/URL(从而读取和写入 plist)。
因此,您可能应该从字典或数组开始,然后将其写入文件以创建 plist。反过来可能会导致问题,具体取决于您的特定 plist 的格式。
至于更复杂的序列化,你应该看看 NSCoding 协议。有了它,您可以序列化和反序列化整个对象树(使用 NSArchiver 和 NSUnarchiver)。不过,不要单独使用 NSArchiver/NSUnarchiver,最好让你的类符合 NSCoding。
如果您的情况不太复杂,我建议从 NSDictionary / NSArray 序列化开始,因为它更容易处理。
【解决方案2】:
您可以使用NSDictionary的dictionaryWithContentsOfFile方法和NSArray的
arrayWithContentsOfFile方法根据plist的内容将您的plist转换为数组或字典。