首先要解释一下,为什么要使用TexturePacker?

这是应为我们做的游戏最终要运行在Android手机或者苹果手机上,而Android或者ios系统使用的是OpenGL ES来渲染。所以我们要针对OpenGL ES来进行优化。

内存方面,OpenGL ES纹理要求宽和高都是2的n次幂的倍数。想一想,如果图片的宽为33,而高为65,那么图片加载到内存后的大小为多少?考虑到宽和高都是2的n次幂,所以加载到内存后的大小是64*128。所以我们可以考虑将小的图片拼成到的图片,然后加载。

渲染速度方面,OpenGL ES要求切换的纹理少,所以将图片拼成大图片,这样就减少了纹理的切换。

所以使用TexturePacker是很有必要的。

打开TexturePacker,点击Add Folder,将图片全部加载进来。注意:我们应该事先将要拼凑的图片放到同一个文件夹下。

这样。TexturePacker就自动将我们要拼凑的图片拼成了一个大图,并且大图的宽和高都是2的n次幂的倍数。

下面设置输出格式:

Texture format设置成PNG。然后选择Data file和Texture file的保存位置。点击工具栏上的Publis。这样我们就得到了plist文件和png文件。

下面就是在cocos2d-x中使用这两个文件。

将这两个文件复制到Resources文件夹中。

使用下面的代码加载着两个文件

[cpp] view plaincopy
  1. CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("last.plist","last.png");

接着创建一个CCSpriteBatchNode,将要渲染的精灵加载到CCSpriteBatchNode。

[cpp] view plaincopy
  1. CCTexture2D *texture=CCTextureCache::sharedTextureCache()->textureForKey("last.png");
  2. CCSpriteBatchNode *node=CCSpriteBatchNode::batchNodeWithTexture(texture);
  3. addChild(node);

然后就是创建精灵并且加载精灵了。

[cpp] view plaincopy
  1. CCSprite *s1=CCSprite::createWithSpriteFrameName("bird.png");
  2. s1->setPosition(ccp(35,32.5));
  3. node->addChild(s1);
  4. CCSprite *s2=CCSprite::createWithSpriteFrameName("cat.png");
  5. s2->setPosition(ccp(100,100));
  6. node->addChild(s2);

其中“bird.png”是小图片的名字。注意:CCSpriteBatchNode中的Sprite都要用同一个纹理。

本文出自:http://blog.csdn.net/zhy_cheng/article/details/8680931

===============================================================

说明:

1.当点击 Add Folder时,是选择一个特定的文件夹,在选择有存储图片的文件夹时不会显示此文件夹下的所有图片,即显示是一个空文件夹。不要理会这些,直接到存放图片的文件夹目录,然后点击选择文件夹。

2.可以在左边设置输出的数据文件的路径(一般数据文件路径和纹理文件路径是相同的),如果在左边没有设置相关的路径,那么在点击Publish时会弹出保存框。建议在左边设置保存路径,因为在左边除了可以设置保存路径外,还可以设置保存的纹理图片的格式,可以是.png格式的也可以是.bmp格式的。

转载于:https://www.cnblogs.com/gsls/p/8185042.html

cocos2dx学习:TexturePacker的使用相关推荐

  1. cocos2d-x学习笔记15:cocos2d-x教程资源总结

    注:cocos2d可作为cocos2dx的参考,两者接口很相似. 名称:知易的<知易Cocos2D-iPhone开发教程> 官方地址:http://blog.sina.com.cn/s/a ...

  2. cocos2d-x学习笔记16:记录存储1:CCUserDefault

    cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...

  3. cocos2d-x 学习笔记(2)cocos2d-x重要概念,项目结构及 CCDirector 导演控件

    cocos2d-x 学习笔记(2)cocos2d-x重要概念及项目结构 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中, ...

  4. cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)

    cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...

  5. (转)cocos2d-X学习之坐标系统

    cocos2d-X学习之坐标系统 在cocos2d-x中有两种坐标系,分别是屏幕坐标系和open gl坐标系. 屏幕坐标系:x轴朝右,y轴朝下.默认原点在左上角,如下图: 这个是一般的图形系统使用的坐 ...

  6. Cocos2d-x 学习笔记一 HelloWorld

    最近刚刚开始学习cocos2d-x,本身自己就是小菜外加从未涉足过游戏引擎方面,而相关的C++版本学习教程并不多,自学起来很是费力啊! 首先是引擎相关的最基本概念,参见http://leeyin.it ...

  7. cocos2d-x学习 之一

    最近准备学习cocos2d-x的开发,首先要搭建一下开发环境.今天就先搭建一下开发环境.本人系统为Mint-15 64位的linux,以下的开发环境只用于linux.首先到cocos2d-x的官网上下 ...

  8. cocos2d-x 学习资料(很全)

    cocos2d-x quick-cocos2d-x官网 http://cn.quick-x.com/?p=235 TexturePacker 不错的图片组合工具(教程) http://hi.baidu ...

  9. cocos2d-x学习资源汇总(持续更新。。。)

    cnblog子龙山人-------andyque 我之前一直学习c++的,第一次接触cocos2d是oc版的,虽然很好用,但是,我还是对c++情有独钟,再加之cocos2d-x由自己人主导,更应该拥抱 ...

  10. Cocos2dx 学习之CCTableView

    上次大体总结了一下CCScrollView,一直想再总结一下CCTableView,但是一直懒得的动弹,今晚要和同事调试代码,趁同事改bug的时间,把它简单的总结一下吧. CCTableView在游戏 ...

最新文章

  1. Spring之DAO二
  2. mysql 用一条sql语句修改两个表里的内容,一条sql语句update更新两个表
  3. IO设计模式:Reactor和Proactor对比
  4. SVN+post-commit 搭建自动同步版本库
  5. 使用require.context实现前端工程自动化
  6. 机器学习中的数学知识(part1)
  7. 高性能最终一致性框架Ray之基本概念原理
  8. 用U盘作为启动盘做系统步骤
  9. css的背景图片不显示,wepback打包时,css的背景图片显示不出来,求教!
  10. 再获国际顶级荣誉,平头哥首席科学家谢源荣获2020年度IEEE CS技术成就奖
  11. 设置日语输入法遇到的各种问题
  12. 海底捞月战法实战讲解
  13. 写程序验证费马素数猜想是否正确
  14. html5绘制标尺,html5画布创建标尺
  15. (HEM/OHEM)hard negative(example)mining难例挖掘 与focal loss、GHM损失函数
  16. 《c语言程序设计》网课答案,C语言程序设计基础知到网课答案
  17. 各项异性扩散(Anisotropic diffusion)--算法简介(python)代码实现
  18. TongWeb上应用部署方式
  19. 很有仙气超有创意的单网页视差效果直接可以使用id1091
  20. 杭州为什么让人羡慕?

热门文章

  1. DockOne微信分享(一四一):如何开发部署Kubernetes Native应用
  2. 成都市交委与摩拜科技联手 助推智慧城市建设
  3. Waiting Processed Cancelable ShowDialog (Release 2)
  4. [原创]手动配置Ubuntu Linux系列3-缺省网关和主机名
  5. phone html5,[操作系统]HTML5 On Windows Phone (2) windows phone mango上使用HTML5并与HTML5交互...
  6. 信号量——内核信号量、POSIX信号量、system V信号量
  7. c 如何调用c语言程序设计,c语言程序设计_函数调用c语言程序设计_函数调用.ppt...
  8. 查找 --- Search Insert Position --- 图解
  9. mac jvisualvm安装Visual GC插件
  10. springBoot过滤器去除请求参数前后空格