Cocos2d-x数据篇04:plist文件操作

尊重原创:http://cn.cocos2d-x.org/tutorial/show?id=2424

【前言】

在Cocos2d-x中,plist文件 是非常常见的配置文件。它是特定格式的xml文件。

例如:小图打包成大图的纹理图片、制作粒子特效、帧动画等,都用到了plist文件作为配置文件。

本节要介绍的是:如何创建plist文件,以及读取plist文件中的数据信息。

【plist文件】

属性列表(Property List)文件是一种用来存储序列化后的对象的文件。

属性列表文件的文件扩展名为 .plist,因此通常被称为plist文件。

1、plist文件在Cocos中的应用

(1)图片纹理的配置信息

将多个纹理小图片打包成一个大图片,并生成plist文件。用于配置各个小图的名称、尺寸大小、以及在大图中的所在的矩形区域位置等信息。

可以使用TexturePacker工具,将多个小碎图的纹理打包成一张大图片。

(2)帧动画的配置信息

将帧动画的数据信息,生成为plist配置文件。包含每帧间隔、动画重复次数、每一帧所需的图片、每张图片的名称、尺寸大小、以及在大图中所在的矩形区域位置等信息。

(3)粒子特效的配置信息

将粒子特效的数据信息,生成为plist配置文件。包含粒子发射器的位置信息、发射器模式、最大粒子数量、发射角度、发射速度、纹理贴图等等信息。

(4)还有其它。

2、plist文件格式

plist文件为属性列表文件,类似于键值对(key-value)的形式。

plist文件举例:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

//

<?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>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>hello world!</string>

</dict>

</plist>

//

属性类型有:

> Dictionary :字典。(子属性列表为:键值对形式)

> Array         :数组。(子属性列表为:数组值的形式)

> Boolean    :逻辑值。(true / false)

> Number    :数字。

> String       :字符串。

> Date          :日期。

> Data          :数据。

其中,根节点只能为字典或数组。

并且在字典或数组中,键对应的值依然可以为以上的各个属性类型。

3、创建/编辑plist文件

在Mac OS系统中,XCode可以直接创建和编辑plist文件。

当然也可以使用plist编辑软件,或直接使用文本编辑器进行编写。

XCode中,编辑plist文件非常方便。

其中,根节点Root,只能为Dictionary、或Array类型。

以上plist文件数据,代码形式如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

//

<?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>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>hello world!</string>

</dict>

</plist>

//

我想大家应该能读得懂把。

4、读取plist文件

接下来讲讲如何读取plist文件的数据信息。

(1)根节点为Dictionary :使用 FileUtils::getInstance()->getValueMapFromFile(); 读取为一个ValueMap 。

(2)根节点为Array :使用 FileUtils::getInstance()->getValueVectorFromFile(); 读取为一个ValueVector 。

使用举例:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//

// 文件路径

std::string path = "/soft/cocos2d-x-3.4/projects/Demo34/Resources/testPlist.plist";

// 读取plist文件

// 以根节点为字典Dictionary为例

// 根节点为字典Dictionary , 读取为一个ValueMap

ValueMap plist = FileUtils::getInstance()->getValueMapFromFile(path);

// 若根节点为数组Array , 读取为一个ValueVector

// ValueVector plist = 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 (int i = 0; i < array.size(); i++) {

Value& value = array[i];

CCLOG("%d", value.asInt());

}

//

【扩展阅读】

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文件格式解析)

时间: 2024-10-08 01:26:47

Cocos2d-x数据篇04:plist文件操作的相关文章

iOS开发:数据存储之plist文件操作

1.plist,全名PropertyList,即属性列表文件,它是一种用来存储串行化后的对象的文件.这种文件,在ios开发过程中经常被用到.这种属性列表文件的扩展名为.plist,因此通常被叫做plist文件.文件是xml格式的.Plist文件是以key-value的形式来存储数据.既可以用来存储用户设置,也可以用来存储一些需要经常用到而不经常改动的信息. 在对plist文件的操作有创建,删除,写入和读取.这四种操作中,写入和读取是比较常用的操作. 2.下面我对这四种操作进行一一的陈述. 首先,

plist文件操作

Cocos2d-x数据篇04:plist文件操作 [前言] 在Cocos2d-x中,plist文件 是非常常见的配置文件.它是特定格式的xml文件. 例如:小图打包成大图的纹理图片.制作粒子特效.帧动画等,都用到了plist文件作为配置文件. 本节要介绍的是:如何创建plist文件,以及读取plist文件中的数据信息. [plist文件] 属性列表(Property List)文件是一种用来存储序列化后的对象的文件. 属性列表文件的文件扩展名为 .plist,因此通常被称为plist文件. 1.

Cocos数据篇[3.4](4) ——plist文件操作

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

IOS Plist文件操作之写入/读取/删除

写入数据到plist文件   //获取路径对象     NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);     NSString *path = [pathArray objectAtIndex:0];     //获取文件的完整路径     NSString *filePatch = [path stringByAppendingPathC

Excel文档数据转成Plist文件

有时候我们需要导入大量数据到App中静态数据,但数据又是存在Excel中,怎么办? 第一,复制数据粘贴到一个.txt文本文档中 第二,就是撸代码了 比如,我需要导入的数据表有2列字段,name和barCode 1 // path 2 NSString *path = [[NSBundle mainBundle] pathForResource:@"tiaoxingma" ofType:@"txt"]; 3 // UTF-8 4 NSString *contents

iOS plist 文件操作

转自:http://blog.csdn.net/totogo2010/article/details/7634185 在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ,因此通常被称为 plist文件.文件是xml格式的. Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息 我们创建一个项目来学习plist文件的读写. 1.创建项目Pl

plist文件操作总结

plist文件类 (负责文件的读写,删除整个文件) #import "Plist.h" @implementation Plist - (void)writePlist:(NSMutableDictionary*)dictionary { NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDirectory, YES); NSString *docPath = [[array

文件操作2之plist文件操作

DionysosLai([email protected]) 2015/1/19 Plist文件属于一种比较常见文件格式,通常用来存储用户设置,也可以用于存储捆绑信息,原先是用在Mac中,后来推广到其他系统中.概况来说,Plist文件是以.plist格式结尾,xml格式的一种文件,读写方式比较基本以'键'= '值'方式对应. 本文系统的介绍基于cocos2dx-2.3版本的plist文件读写细节,希望通过本文,对其他plist文件能够达到自由读取目的. plist 资源文件如下所示: <?xml

Python基础篇【第2篇】: Python文件操作

Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说:1. 打开文件 2.操作文件 3.关闭文件 1. 打开文件.关闭文件 Python中使用open函数打开一个文件,创建一个file操作对象. open()方法 语法: file object = open(file_name [, access_mode][, buffering]) 各个参数的细