cocos2d-x 读取配置文件plist
来源:互联网 发布:网络刻章在线制作 编辑:程序博客网 时间:2024/05/18 03:11
在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在cocos2d-x解析.plist方面相关的资料比较少,但本身也很简单,要解析.plist文件可以参考cocos2d-x类库中的CCSpriteFrameCache类和CCParticleSystem类,它主要是使用CCDictionary类来对.plist文件进行操作。
下面有一个.plist文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>level1</key>
- <dict>
- <key>bg_far_scene</key>
- <dict>
- <key>path</key>
- <string>images/far_scene.png</string>
- <key>pos</key>
- <string>{358, 309}</string>
- </dict>
- <key>bg_near_scene</key>
- <dict>
- <key>path</key>
- <string>images/near_scene.png</string>
- <key>pos</key>
- <string>{360, 100}</string>
- </dict>
- </dict>
- </dict>
- </plist>
- const char* testPlistPath = "BSPlistDatas\\test.plist";
- const char* fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile("test.plist", testPlistPath);
- CCDictionary* plistDic = CCDictionary::createWithContentsOfFile(testPlistPath);
- CCDictionary* levelDic = dynamic_cast<CCDictionary*>(plistDic->objectForKey("level1"));
- CCDictionary* farScene = dynamic_cast<CCDictionary*>(levelDic->objectForKey("bg_far_scene"));
- CCString* farScenePath = dynamic_cast<CCString*>(farScene->objectForKey("path"));
- CCPoint point = CCPointFromString(farScene->valueForKey("pos")->getCString());
- CCLog("path = %s", farScenePath->getCString());
- CCLog("pos = %f, %f", point.x, point.y);
这里需要注意的是,当在读取'pos'的时候,它的值一个{x, y}的字符串,这是.plist文件中的数组存储规则,我们可以通过cocos2d-x提供函数api将这样的字符串转化为CCpoint对象。
- CCPoint point = CCPointFromString(farScene->valueForKey("pos")->getCString());
上面这句话就是做了这样的一个转化的过程,同样的cocos2d-x还支持CCSize、CCRect的字符串的转化。他们转化的方法以及在.plist中对应的字符串格式如下:
CCPoint: CCPointFromString(); {x, y}
CCSize: CCSizeFromString(); {w, h}
CCRect: CCSizeFromString(); {x, y, w, h}
这样我们2D游戏所初始化所需要的数据都基本上够用了,可以尝试将游戏的初始数据放在.plist中,然后修改调整数值就可以直接修改plist文件,而无需重新编译程序了,从而实现游戏数据和游戏逻辑的分离。
0 0
- cocos2d-x 读取配置文件plist
- cocos2d-x 3.x读取plist(xml)配置文件
- cocos2d-x 读取plist文件
- cocos2d-x plist文件读取
- cocos2d-x 读取.plist文件
- cocos2d-x读取xx.plist文件1
- cocos2d-x animation闪烁与plist文件读取
- cocos2d读取plist文件
- Cocos2d-x——读取Csv配置文件
- cocos2d-x的plist文件
- coco2d-x 读取plist文件
- 【Cocos2d-x 3.0学习笔记】coco2d-s 读取plist 文件报错
- cocos2d-x中读取plist文件和集成的png图片
- Cocos2d-3.x_读取plist文件
- cocos2d-x 解析 Info.plist 及其它.plist
- cocos2d-x 一个plist创建多个帧动画
- cocos2d-x 一个plist创建多个帧动画
- cocos2d-x中使用plist文件总结
- Android文件存储
- STL中的map容器的一点总结
- 使用Git hook来校验push用户名的合法性
- 【Bash】实现指定目录下的文件编码转换,以原文件名保存
- has been modified since the precompiled header的几种解决方案
- cocos2d-x 读取配置文件plist
- linux命令后台运行
- 父视图半透明,子视图不透明
- 推荐的SOA BPEL教程
- SSL单向认证和双向认证
- Nessus automation
- LA3516 Exploring Pyramids
- iOS 关于iPhone适配问题说明
- C++和Objective-C混编(官方文档翻译)