cocos2d-x 项目里使用TexturePacker

cocos2d-x 项目里使用TexturePacker,第1张

概述TexturePacker是非常棒的图像处理工具。 第一,它可以节约大量的内存,图片加入内存是以2的幂进行加载的,即一张640*1136的图片,其实在内存中是以1024*2056的纹理存在的,即浪费了大约一半的内存,因此,我们需要使用TexturePacker来把许多小图尽量拼凑成以2的幂为长宽的大图。 再者,OpenGL ES 上来说我们应该尽量减少渲染时切换纹理和 glDrawArray 的呼

TexturePacker是非常棒的图像处理工具。

第一,它可以节约大量的内存,图片加入内存是以2的幂进行加载的,即一张640*1136的图片,其实在内存中是以1024*2056的纹理存在的,即浪费了大约一半的内存,因此,我们需要使用TexturePacker来把许多小图尽量拼凑成以2的幂为长宽的大图。

再者,OpenGL ES 上来说我们应该尽量减少渲染时切换纹理和 glDrawArray 的呼叫,如果按照常规方法进行加载图像,则每换一次图像就会切换一次纹理并呼叫一次glDrawArray,如果需要渲染大量的图像,则速度会明显变慢。


//第一种加载资源方式

//CCSprite* sprite=CCSprite::create("start.png");

//第二种加载资源方式

CCSpriteFrameCache *cache=CCSpriteFrameCache::sharedSpriteFrameCache();

cache->addSpriteFramesWithfile("image.pList","image.png");

CCTexture2D *texture = CCTextureCache::sharedTextureCache()->textureForKey("image.png");

CCSpriteBatchNode *spriteBatch = CCSpriteBatchNode::batchNodeWithTexture(texture);

addChild(spriteBatch);

CCSprite* sprite=CCSprite::spriteWithSpriteFramename("start.png");

总结

以上是内存溢出为你收集整理的cocos2d-x 项目里使用TexturePacker全部内容,希望文章能够帮你解决cocos2d-x 项目里使用TexturePacker所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1026294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存