cocos2d-x中的plist文件格式详解

  原文链接:http://zengrong.net/post/1981.htm

cocos2d-x中的plist文件格式详解

本文完成度90%,请耐心等待……

 

1. 什么是plist文件格式?

这是一种人类可读的串行化对象文件,由苹果公司发明,最早用于NeXTSTEP系统。详情看这里:Plist 。

cocos2d-x 从 cocos2d-iphone 发展而来,因此在引擎中大量使用了这种文件格式。

2. 如何编辑plist文件?

在 OS X 系统上,XCode 就可以直接打开和编辑plist文件。而在Windows上,我还没有找到可用的plist编辑软件。

当然,plist是基于XML的纯文本格式,随便找个文本编辑器就可以编辑了。

3. cocos2d-x在哪些地方使用了plist格式?

大致有这样几种:

· 图像纹理定义文件
将多个纹理拼在一张大图上,使用 CCSpriteFrameCache 可以载入这类plist文件;
这里有一个图像纹理定义文件的范例: [cocos2d-x]\samples\Cpp\TestCpp\Resources\animations\grossini_family.plist 。

· Label纹理定义文件
作用与图像纹理定义文件类似,只不过处理的是自己,面向CCLabelAtlas
这里有一个Label纹理定义文件的范例: [cocos2d-x]\samples\Cpp\TestCpp\Resources\fonts\tuffy_bold_italic-charmap.plist 。

· 帧动画定义
定义一个或多个动画中,使用哪些纹理,使用CCAnimationCache 可以载入这类plist文件;
这里有一个帧动画定义文件的范例: [cocos2d-x]\samples\Cpp\TestCpp\Resources\animations\animations.plist 。

4. 生成plist文件的工具

对于纹理定义文件来说,它的作用是如何在大图中找到碎图的坐标。因此很多拼合碎图的软件可以在拼合碎图的同时生成plist文件。

· TexturePacker 是所有平台上最好用的工具了;

· Zwoptex 是MAC Only的软件,我不太喜欢用;

· SpritePacker 是Windows Only的软件,功能尚可。

5. 图像纹理定义文件格式说明

cocos2d-x中的纹理定义格式,是以Zwoptex生成的格式为标准的。

Zwoptex生成的格式,有4种主要不同的版本:

· format值为0,代表Flash版本;

· format值为1,Zwoptex 0.4b以前支持;

· format值为2,Zwoptex 1.0以后支持,与format1的区别在于支持旋转;

· format值为3,属性名称进行了大幅修改,Zwoptes1.0.2之后支持。

这3种格式的plist文件,cocos2d-x都能支持,具体的解析代码在CCSpriteFrameCache::addSpriteFramesWithDictionary

TexturePacker生成的for cocos2d plist格式与Zwoptex生成的format为2的格式相同。

5.1 format为0的plist文件

这里贴一个比较完整plist文件,为了方便描述,其中仅包含一个frame。

 

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

32

33

34

35

<?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>texture</key>

    <dict>

        <key>width</key>

        <integer>256</integer>

        <key>height</key>

        <integer

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值