cocos2dx学习:TexturePacker的使用

首先要解释一下,为什么要使用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 plain copy
  1. CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("last.plist","last.png");  

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


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

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

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

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


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


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

说明:

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

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

3.TexturePacker没有破解,但是可以到期后卸载后再重装。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值