Iphone 用于数据的文本文件
我一直在想,在我的Cocos2d游戏中,存储数据的最佳方式是什么 当我的游戏开始时,它会随机选择一种敌人。根据等级的不同,敌人的数量也会发生变化。我想做的是有一个包含所有数量的敌人的文件。我想有一个单独的文件,如果可能的话,这是很容易调整和更改 示例 比如说三级,选择敌人_1。然后它转到敌方_1数据文件,然后找到要创建的精灵数量 在寻找实现这一点的方法时,我没有意识到xCdoe中内置了一些我可以使用的文件。这些文件包括:字符串文件、属性列表和富文本文件。我最好的猜测是我必须使用属性列表,但我不确定它们是如何工作的,以及如何在我的游戏中实现。你能告诉我怎么做吗 提前谢谢 编辑:Iphone 用于数据的文本文件,iphone,ios,xcode,properties,cocos2d-iphone,Iphone,Ios,Xcode,Properties,Cocos2d Iphone,我一直在想,在我的Cocos2d游戏中,存储数据的最佳方式是什么 当我的游戏开始时,它会随机选择一种敌人。根据等级的不同,敌人的数量也会发生变化。我想做的是有一个包含所有数量的敌人的文件。我想有一个单独的文件,如果可能的话,这是很容易调整和更改 示例 比如说三级,选择敌人_1。然后它转到敌方_1数据文件,然后找到要创建的精灵数量 在寻找实现这一点的方法时,我没有意识到xCdoe中内置了一些我可以使用的文件。这些文件包括:字符串文件、属性列表和富文本文件。我最好的猜测是我必须使用属性列表,但我不确
我忘了说我不能只拥有一个属性文件,但我需要为每种类型的敌人拥有一个属性文件。这是因为有些敌人比其他敌人更难杀死。属性列表最适合设计基于级别的游戏。
属性列表say 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"]];
属性列表最适合设计基于级别的游戏。
属性列表say 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"]];
您可能可以使用一个属性列表文件
首先,确保您了解什么是属性列表。属性列表递归定义为以下内容之一:
- 一串
- 布尔值
- 整数
- 浮点数
- 日期(和时间)
- 二进制数据块
- 属性列表的数组
- 一种字典,其中包含用于键的字符串和用于值的属性列表
+[NSDictionary Dictionary WithContentsOfFile:
加载它,如果需要更多的错误检查,也可以使用NSPropertyListSerialization
加载它。Xcode plist编辑器不是很好,但即使您最终需要编写自己的关卡编辑器,属性列表仍然是存储游戏数据的方便方式
您可能可以使用一个属性列表文件
首先,确保您了解什么是属性列表。属性列表递归定义为以下内容之一:
- 一串
- 布尔值
- 整数
- 浮点数
- 日期(和时间)
- 二进制数据块
- 属性列表的数组
- 一种字典,其中包含用于键的字符串和用于值的属性列表
+[NSDictionary Dictionary WithContentsOfFile:
加载它,如果需要更多的错误检查,也可以使用NSPropertyListSerialization
加载它。Xcode plist编辑器不是很好,但即使您最终需要编写自己的关卡编辑器,属性列表仍然是存储游戏数据的方便方式
谢谢,但我如何让游戏获取某一级别的数据并将其输入我的sprite方法?请参阅plist通常包含键值对,因此当您将其转换为字典时,只需根据您的键获取值。假设您有包含该级别字典的GameLevel键,请说“level”:1,“noOfAnemy”:12
然后,您将获得键“gameLevel”的gameLevel dict以及访问关卡和noOfAnemy的权限。这一切取决于您的plist包含的内存,但是,我如何让游戏获取某个级别的数据并将其输入到我的sprite方法中呢?请参见plist通常由键值对组成,因此当您将其转换为字典时,只需根据您的键值获取值。假设您有包含该级别字典的GameLevel键,例如“level”:1,“noOfAnemy”:12
然后,您将获得键“gameLevel”的gameLevel dict以及访问关卡和noOfAnemy的权限。这取决于plist包含的内容