
最近在玩cocos2dx,在敲代码时很多图片资源要打包成一张png图片,附带pList文件,对于pList文件一直不太了解,今天做个全面的分析,分析有误的地方还请读者指正。
pList文件直接用文本方式(txt)或者notepad打开。
1.如下图所示为pList文件中一个图像的数据。
[cpp] view plain copy <dict> <key>frame</key> <string>{{2,2},{182,148}}</string> <key>offset</key> <string>{3,-11}</string> <key>rotated</key> <false/> <key>sourcecolorRect</key> <string>{{12,37},248)"> <key>sourceSize</key> <string>{200,200}</string> </dict>2.对应含义,从后向前说,下图为图片的原图图像,也可以说是加载到cocos2dx中的sprite大小
我们知道png图像有透明区域和非透明区域(此处称为图像区域)。
source :原图片长宽像素(包括透明区域和图像区域)或称为sprite的大小, {200,200}->{wIDth,height}
sourcecolorRect:图像区域(非透明区域)的位置和大小,
{{12,148}}->{{图像左上点x坐标,图像左上点y坐标},{图像区域宽,图像区高}},
此处坐标系为 x向右为正, y坐标向下为正
rotate:图像区域合成到pList中后,是否顺时针旋转90度
offset:图像区域中心点与整体区域中心点的偏移量,{3,-11} 计算过程如下:
此处坐标系为x向右为正,y坐标向上为正
1.图像区域中心坐标为 x1 =12 + 182/2 = 103 , y1 = 200 - 37 - 148/2 = 89
2.整体区域中心坐标为 x2 = 200/2 =100,y2 = 200/2 =100
3.偏移量 Δx = 103 -100 = 3,Δy = 89 - 100 = -11
frame:为透明区域在pList(合成图片)中的位置和大小,
{{2,148}}->{{透明区域在合成pList中左上点的x坐标,y坐标},{透明区域的wIDth,height}}
之所以这样存储是为了在合成pList图片时去掉透明部分节省空间,source能在使用图片时确定sprte大小,而offerset能在使用pList时能够正确定位透明区域的位置。
总结以上是内存溢出为你收集整理的cocos2dx plist中各个属性含义全部内容,希望文章能够帮你解决cocos2dx plist中各个属性含义所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)