Cocos数据篇[3.4](4) ――plist文件 *** 作

Cocos数据篇[3.4](4) ――plist文件 *** 作,第1张

概述【唠叨】     在Cocos中,plist文件 是非常常见的配置文件。它是特定格式的xml文件。     例如:小图打包成大图的纹理图片、制作粒子特效、帧动画等,都用到了plist文件作为配置文件。     本节要介绍的是:如何创建plist文件,以及读取plist文件中的数据信息。     【扩展阅读】     http://zh.wikipedia.org/wiki/Plist (维基百科)

【唠叨】

在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文件 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1040398.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存