cocos2d-x中描述精灵帧图片的plist和json文件各个key的含义
最近在研究cocos,互联网行业中,手游业最近的表现是非常的火,加上本身对游戏有浓厚兴趣,所以便染指了游戏引擎~
这次的废话就这么简短吧,因为这次记录的东西本身就很少。
在cocos中,为精灵帧添加缓存可以通过下面的方法
cc.spriteFrameCache.addSpriteFrames(url, texture)
其中,第一个参数是一个 plist 或者 json 文件的路径,第二个参数是一个纹理图片对象,一般不传就可以了
添加了精灵帧缓存后,我们就可以通过下面的方法来创建精灵
new cc.Sprite("#帧名")
当中的帧名就配置在 plist 或者 json 文件中,当然,plist 或者 json 文件描述的不单单是帧名,还有每一个帧对应的是图片中的哪一部分
下面是一个最简单的 plist 文件实例
- <?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>frames</key>
- <dict>
- <key>icon001</key>
- <dict>
- <key>frame</key>
- <string>{{0,0},{240,240}}</string>
- <key>offset</key>
- <string>{0,0}</string>
- <key>rotated</key>
- <false/>
- <key>sourceColorRect</key>
- <string>{{0,0},{240,240}}</string>
- <key>sourceSize</key>
- <string>{240,240}</string>
- </dict>
- </dict>
- <key>metadata</key>
- <dict>
- <key>format</key>
- <integer>2</integer>
- <key>realTextureFileName</key>
- <string>b01.png</string>
- <key>size</key>
- <string>{240,240}</string>
- <key>textureFileName</key>
- <string>b01.png</string>
- </dict>
- </dict>
- </plist>
再来一个 json 的实例
- {
- "frames" : {
- "icon001" : {
- "frame" : "{{2,0},{640,305}}",
- "offset" : "{0,0}",
- "rotated" : false,
- "sourceColorRect" : "{{0,0},{640,305}}",
- "sourceSize" : "{640,305}"
- },
- "icon002" : {
- "frame" : "{{2,625},{320,182}}",
- "offset" : "{0,0}",
- "rotated" : false,
- "sourceColorRect" : "{{0,0},{320,182}}",
- "sourceSize" : "{320,182}"
- }
- },
- "metadata" : {
- "format" : 2,
- "realTextureFileName" : "ui_new_icon_png.png",
- "size" : "{1024, 1024}",
- "textureFileName" : "ui_new_icon_png.png"
- }
- }
frames 中的各个 key 代表帧名,指向该帧对应的截图信息对象,下面这个截图信息对象中的各个 key 代表的含义
frame:表示这一帧的截图,在大图中的位置和尺寸(也就是起始坐标以及需要截取的宽高)。
offset:表示这个截图的中心点,和整个动画的中心点。
rotated:如果值为true,图片顺时针旋转90度。
sourceColorRect:这个截图在sourceSize这个方形的位置和尺寸。
sourceSize:动画的尺寸,如果一个动画有很多帧的话,所有帧的sourceSize是不变的,基本上可以理解为这么多帧中最大显示范围的那个尺寸。
metadata 中的各个 key 代表的含义
textureFileName 和 realTextureFileName:都是图片名(这个图片必须和 plist 或 json 文件在同一目录下)
size:图片的尺寸
format:这个比较复杂,放在最后特别说明一下
cocos2d-x 中的纹理定义格式,是以 Zwoptex 生成的格式为标准的。
Zwoptex 生成的格式,有4种主要不同的版本:
· format 值为0,代表 Flash 版本;
· format 值为1,Zwoptex 0.4b 以前支持;
· format 值为2,Zwoptex 1.0 以后支持,与 format1 的区别在于支持旋转;
· format 值为3,属性名称进行了大幅修改,Zwoptes1.0.2 之后支持。
生成plist文件的工具
对于纹理定义文件来说,它的作用是如何在大图中找到碎图的坐标。因此很多拼合碎图的软件可以在拼合碎图的同时生成plist文件。
TexturePacker 是所有平台上最好用的工具了。
Zwoptex 是 MAC Only 的软件,我不太喜欢用。
SpritePacker 是 Windows Only 的软件,功能尚可。
cocos2d-x中描述精灵帧图片的plist和json文件各个key的含义的更多相关文章
- vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发
在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请 ...
- python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中
# coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.s ...
- cocos2d心得关于精灵帧缓存
在cocos2d中,精灵帧缓存CCSpriteFrameCache是用来存储精灵帧的.它没有特别的属性,只存储了一些用来管理CCSpriteFrame的方法. 以一个例子来说明,一般在又纹理图集的程序 ...
- SpriteFrameCache 精灵帧缓存
//获取精灵帧缓存的单例对象 auto spriteFrameCache = SpriteFrameCache::getInstance(); //从plist文件添加多个精灵帧 spriteFra ...
- [转]nodejs中package.json和package-lock.json文件的功能分析
本文转自:https://blog.csdn.net/u013992330/article/details/81110018 最新版nodejs中,多了一个package-lock.json文件,刚开 ...
- Scrapy基础(十一)————导出数据到json文件中
之前介绍过将数据写入mysql数据库中,但是对于那些没有数据库的,可以通过写入json文件中或者是写入到csv或者xls:这里只介绍写入json文件中,也为再练习一下自定义的pipeline 思路: ...
- SpriteBuilder中如何平均拉伸精灵帧动画的距离
首先要在Timeline中选中所有的精灵帧,可以通过如下2种的任意一种办法达成: 1按下Shift键的同时鼠标单击它们 2鼠标在Timeline空白区拖拽直到拉出的矩形包围住所有精灵帧方块后放开鼠标. ...
- php如何截取出视频中的指定帧作为图片
php如何截取出视频中的指定帧作为图片 一.总结 一句话总结:截取视频指定帧为图片,php ffmpeg扩展已经完美实现,并且php ffmpeg是开源的 二.php如何截取出视频中的指定帧作为图片 ...
- 【Cocos2d-x 3.x】 精灵帧缓存和纹理缓存
转自泰然网(Cocos2d-x 3.x官方文档):精灵帧缓存:http://www.tairan.com/archives/6378/ 纹理缓存: http://www.tairan.com/ar ...
随机推荐
- handsontable-developer guide-setting options,callback
1.cell数组 cell: [ {row: 0, col: 0, readOnly: true} ] 2.cells函数 cells: function(row, col, prop){ var c ...
- [label][转载][paypal]paypal在线支付接口的WEB语言设置
http://stephen830.iteye.com/blog/274072 ★★★ 本篇为原创,需要引用转载的朋友请注明:< http://stephen830.iteye.com/blog ...
- 咏南CS开发框架新的界面风格
咏南CS开发框架新的界面风格 这种风格完全和WINDOWS桌面一样,符合用户的操作习惯. 我的桌面的图标和WINDOWS桌面一样分为二类:1)快捷方式 2)文件夹. 如果快捷方式较多,看得人眼花缭乱 ...
- Jquery 自定义插件写法(示例)
(function ($) { $.SmsHelper = $.SmsHelper || {}; $.extend($.SmsHelper, { //插件具体实现代码 yzmnum: 60, Ajax ...
- Solr相似度名词:VSM(Vector Space Model)向量空间模型
最近想学习下Lucene ,以前运行的Demo就感觉很神奇,什么原理呢,尤其是查找相似度最高的.最优的结果.索性就直接跳到这个问题看,很多资料都提到了VSM(Vector Space Model)即向 ...
- 【转】如何成为一名优秀的web前端工程师(前端攻城师)?
[转自]http://julying.com/blog/how-to-become-a-good-web-front-end-engineer/ 程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · ...
- MySQL之FOUND_ROWS()的用法
SELECT FOUND_ROWS() 输出8(输出该表共有多少列)
- ElasticSearch NEST搜索
var client = ElasticsearchHelper.GetElasticClient("order");QueryContainer termQuery = new ...
- day 08 课后作业
# -*- coding: utf-8 -*-# @Time : 2018/12/27 17:27# @Author : Endless-cloud# @Site : # @File : day 8课 ...
- http协议缓存小结
缓存可以使用expire方式,设置到期时间,缓存的时间等于expire设置的时间减去当前的时间 也可以使用no-cache的方式进行缓存,当设置了no-cache的方式时,以no-cache的为准,e ...