cocos2d-x-- spritesheet plist文件格式解析

1.spritesheet的plist文件中字段的含义


plist文件是游戏开发中将一些小图合并成一张大图的时候生成的配置文件,从大图中获取小图需要对应plist文件中的信息,如上图中,game.png是小图合成后的大图,game.plist是对应的plist文件。

plist文件包括的信息如下图:


plist中各字段的含义如下:

frame:小图在大图中的位置(相对于大图左上角)和尺寸,程序会根据这个来做剪辑。

rotated:如果值为true,图片顺时针旋转90度。

sourceSize:小图原本的大小,也是sprite的大小。

sourceColorRect:小图在sourceSize这个方形的位置和尺寸(以左上角来算),这一部分应该是去掉了原图中透明的部分后的那部分。

offset:在合成大图的过程中texturePackage会把原图透明的部分删除,offset是这张新的图片的中心点相对于原图的中心点(以sourceSize这个方形的中心点)的偏移,这个是以cocos2d的坐标系为准的,y轴向上为正,x轴向右为正。

如上图中图片button-jiabei.png中,offset=(1,-2) ; sourceColorRect={ (4,4),(106,59) }; sourceSize = ( 112,63);

sourceSize的中心点是( 112 / 2,63 / 2 )= ( 56,31.5 )

sourceColorRect的中心点是 ( 4,4 )+ ( 106 / 2,59 / 2 ) = ( 57,33.5 )

所以sourceColorRect的中心点相对于sourceSize的中心点是x方向是向右偏移1,为正,y方向是向下偏移2,为负。所以offset = ( 1,-2 ).


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

1)图像纹理定义文件,如1中的plist文件
将多个纹理拼在一张大图上,使用CCSpriteFrameCache可以载入这类plist文件;

2)Label纹理定义文件

作用与图像纹理定义文件类似,只不过处理的是自己,面向CCLabelAtlas

3)帧动画定义定义一个或多个动画中,使用哪些纹理,使用CCAnimationCache可以载入这类plist文件;


3.生成plist文件的工具

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

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

·ZwoptexMACOnly的软件;

·SpritePackerWindowsOnly的软件。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...