 ――plist文件 *** 作,第1张 Cocos数据篇[3.4](4) ――plist文件 *** 作,第1张](/aiimages/Cocos%E6%95%B0%E6%8D%AE%E7%AF%87%5B3.4%5D%284%29+%E2%80%95%E2%80%95plist%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C.png)
【唠叨】
在Cocos中,pList文件是非常常见的配置文件。它是特定格式的xml文件。
例如:小图打包成大图的纹理图片、制作粒子特效、帧动画等,都用到了pList文件作为配置文件。
本节要介绍的是:如何创建pList文件,以及读取pList文件中的数据信息。
【扩展阅读】
http://zh.wikipedia.org/wiki/Plist(维基百科)
http://zengrong.net/post/1981.htm(COCOS2D-X中的PList文件格式详解)
http://cn.cocos2d-x.org/tutorial/show?id=2117(Spritesheet的pList文件格式解析)
【pList文件】
属性列表(Property List)文件是一种用来存储序列化后的对象的文件。
属性列表文件的文件扩展名为 .pList,因此通常被称为pList文件。
1、pList文件在Cocos中的应用
(1)图片纹理的配置信息
将多个纹理小图片打包成一个大图片,并生成pList文件。用于配置各个小图的名称、尺寸大小、以及在大图中的所在的矩形区域位置等信息。
可以使用TexturePacker工具,将多个小碎图的纹理打包成一张大图片。
(2)帧动画的配置信息
将帧动画的数据信息,生成为pList配置文件。包含每帧间隔、动画重复次数、每一帧所需的图片、每张图片的名称、尺寸大小、以及在大图中所在的矩形区域位置等信息。
(3)粒子特效的配置信息
将粒子特效的数据信息,生成为pList配置文件。包含粒子发射器的位置信息、发射器模式、最大粒子数量、发射角度、发射速度、纹理贴图等等信息。
(4)还有其它。
2、pList文件格式
pList文件为属性列表文件,类似于键值对(key-value)的形式。
pList文件举例:
//<?xmlversion="1.0"enCoding="UTF-8"?><!DOCTYPEpListPUBliC"-//Apple//DTDPList1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><pListversion="1.0"><dict> <key>dict</key> <dict> <key>name</key> <string>Alice</string> <key>age</key> <string>20</string> </dict> <key>array</key> <array> <integer>0</integer> <integer>1</integer> <integer>2</integer> </array> <key>bool</key> <true/> <key>data</key> <data></data> <key>date</key> <date>2015-02-16T16:47:11Z</date> <key>number</key> <integer>123456</integer> <key>string</key> <string>helloworld!</string></dict></pList>//
属性类型有:
> Dictionary :字典。(子属性列表为:键值对形式)
> Array :数组。(子属性列表为:数组值的形式)
> Boolean :逻辑值。(true / false)
> Number :数字。
> String :字符串。
> Date :日期。
> Data :数据。
其中,根节点只能为字典或数组。
并且在字典或数组中,键对应的值依然可以为以上的各个属性类型。
3、创建/编辑pList文件
在Mac OS系统中,XCode可以直接创建和编辑pList文件。
当然也可以使用pList编辑软件,或直接使用文本编辑器进行编写。
XCode中,编辑pList文件非常方便。
其中,根节点Root,只能为Dictionary、或Array类型。
650) this.wIDth=650;" src="http://img.jb51.cc/vcimg/static/loading.png" title="1.png" alt="wKiom1TiMoliwX2QAAETD6stsBk455.jpg" src="http://s3.51cto.com/wyfs02/M02/59/CB/wKiom1TiMoliwX2QAAETD6stsBk455.jpg">
以上pList文件数据,代码形式如下:
//<?xmlversion="1.0"enCoding="UTF-8"?><!DOCTYPEpListPUBliC"-//Apple//DTDPList1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><pListversion="1.0"><dict> <key>dict</key> <dict> <key>name</key> <string>Alice</string> <key>age</key> <string>20</string> </dict> <key>array</key> <array> <integer>0</integer> <integer>1</integer> <integer>2</integer> </array> <key>bool</key> <true/> <key>data</key> <data></data> <key>date</key> <date>2015-02-16T16:47:11Z</date> <key>number</key> <integer>123456</integer> <key>string</key> <string>helloworld!</string></dict></pList>//
我想大家应该能读得懂把。
4、读取pList文件
接下来讲讲如何读取pList文件的数据信息。
(1)根节点为Dictionary :使用fileUtils::getInstance()->getValueMapFromfile(); 读取为一个ValueMap 。
(2)根节点为Array :使用fileUtils::getInstance()->getValueVectorFromfile(); 读取为一个ValueVector 。
使用举例:
////文件路径 std::stringpath="/soft/cocos2d-x-3.4/projects/Demo34/Resources/testPList.pList";//读取pList文件//以根节点为字典Dictionary为例 //根节点为字典Dictionary,读取为一个ValueMap ValueMappList=fileUtils::getInstance()->getValueMapFromfile(path); //若根节点为数组Array,读取为一个ValueVector //ValueVectorpList=fileUtils::getInstance()->getValueVectorFromfile(path);//获取数据 //读取"string" cclOG("string=%s",(pList["string"].asstring()).c_str()); //读取"dict",也是一个字典ValueMap ValueMap&dict=pList["dict"].asValueMap(); cclOG("name=%s",(dict["name"].asstring()).c_str()); cclOG("age=%s",(dict["age"].asstring()).c_str()); //读取"array",是一个数组ValueVector ValueVector&array=pList["array"].asValueVector(); for(inti=0;i<array.size();i++){ Value&value=array[i]; cclOG("%d",value.asInt()); }// 总结 以上是内存溢出为你收集整理的Cocos数据篇[3.4](4) ――plist文件 *** 作全部内容,希望文章能够帮你解决Cocos数据篇[3.4](4) ――plist文件 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)