我一直想知道在我的Cocos2d游戏中存储数据的最佳方式是什么。
当我的游戏启动时,它会选择一个随机类型的敌人。根据等级,敌人的数量会发生变化。我想要做的是拥有一个文件,其中包含产生的所有敌人数量。如果可能的话,我想将它放在一个单独的文件中,以便于调整和更改。
示例
说3级,选择Enemy_1。然后转到Enemy_1数据文件,然后查找要创建的精灵数量。
在搜索某种方法时,我发现xCdoe中内置了一些我可以使用的文件。这些包括:字符串文件,属性列表和富文本文件。我最好的猜测是我必须使用属性列表,但我不确定它们是如何工作的,以及它如何在我的游戏中实现。你能不能给我一些如何做的代码?
提前致谢
编辑: 我忘了说我不能只有一个属性文件,但我需要为每种类型的敌人都有一个。这是因为有些敌人比其他人更难杀死。
答案 0 :(得分:2)
属性列表最适合设计基于游戏的游戏
属性列表说Levels.plist可以很容易地转换为NSDictionary
或NSArray
,具体取决于它所拥有的数据类型。
这两种方法用于将plist转换为NSDictionary
或NSArray
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Levels" ofType:@"plist"]];
NSArray *array = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Levels" ofType:@"plist"]];
答案 1 :(得分:1)
你可能可以使用一个属性列表文件。
首先,确保您了解属性列表是什么。属性列表以递归方式定义为以下内容之一:
属性列表可以将数组和字典嵌套到任何级别。这就是为什么你可以只使用一个属性列表。您可以将顶级对象设为具有两个键的字典:“敌人”和“级别”。 “敌人”键的值是一个字典,每种类型的敌人都有一个条目。 “Levels”键的值是每个级别有一个条目的数组。这是一个例子:
您可以使用Xcode的属性列表编辑器来创建和修改属性列表(就像我为该示例所做的那样)。您可以使用+[NSDictionary dictionaryWithContentsOfFile:]
加载,或者如果需要更多错误检查,则使用NSPropertyListSerialization
。 Xcode plist编辑器不是很好,但即使你最终需要编写自己的关卡编辑器,属性列表仍然是存储游戏数据的便捷方式。