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");
原文链接:https://www.f2er.com/cocos2dx/345251.html