Cocos2d-x中的 CCSpriteFrameCache , CCTextureCache的使用
2013-08-22 23:15
405 查看
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/312
Cocos2d-x中的 CCSpriteFrameCache , CCTextureCache的使用注意cache的使用: 1、CCSpriteFrameCache使用: CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("animations/grossini.plist"); 在离开的时候: void SpriteFrameTest::onExit() { SpriteTestDemo::onExit(); CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->removeSpriteFramesFromFile("animations/grossini.plist"); 或者:CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames(); } 大家先看看sharedSpriteFrameCache的源码: CCSpriteFrameCache* CCSpriteFrameCache::sharedSpriteFrameCache(void) { if (! pSharedSpriteFrameCache) { pSharedSpriteFrameCache = new CCSpriteFrameCache(); pSharedSpriteFrameCache->init(); } return pSharedSpriteFrameCache; } CCSpriteFrameCache::~CCSpriteFrameCache(void) { CC_SAFE_RELEASE(m_pSpriteFrames); CC_SAFE_RELEASE(m_pSpriteFramesAliases); } 并没有autorelease,不会持有,当一释放的时候就会被删除 2、CCTextureCache使用: SpriteNewTexture::SpriteNewTexture() { setIsTouchEnabled( true ); CCNode* node = CCNode::node(); addChild(node, 0, kTagSpriteBatchNode); m_texture1 = CCTextureCache::sharedTextureCache()->addImage("Images/grossini_dance_atlas.png"); m_texture1->retain(); m_texture2 = CCTextureCache::sharedTextureCache()->addImage("Images/grossini_dance_atlas-mono.png"); m_texture2->retain(); m_usingTexture1 = true; for(int i=0;i<30;i++) addNewSprite(); } SpriteNewTexture::~SpriteNewTexture() { m_texture1->release(); m_texture2->release(); } 大家先看看sharedTextureCache的源码: CCTextureCache * CCTextureCache::sharedTextureCache() { if (!g_sharedTextureCache) g_sharedTextureCache = new CCTextureCache(); return g_sharedTextureCache; } CCTextureCache::~CCTextureCache() { CCLOGINFO("cocos2d: deallocing CCTextureCache."); CC_SAFE_RELEASE(m_pTextures); } 也是没有autorelease,不会持有,当一释放的时候就会被删除,若想持有,按照上述例子retain和release
相关文章推荐
- CCSpriteFrameCache、CCTextureCache的使用
- cocos2d-x CCTextureCache使用
- cocos2d-x CCTextureCache使用
- Cocos2D-x , CCTextureCache的多线程加载原理和使用方法
- CCSpriteFrameCache和CCTextureCache
- CCTextureCache 和 CCSpriteFrameCache
- 缓存与预加载技术(图片缓存CCSpriteFrameCache、动画缓存 CCAnimationCache、纹理缓存CCTextureCache、音乐音效SimpleAudioEngine)
- 使用CCAnimate、CCAnimation、CCTextureCache、CCTexture2D来实现动画效果
- Cocos2d-x--使用CCSpriteFrameCache,CCAnimationCache预加载资源
- cocos2d-x 动画详解之零 基础CCTexture2D,CCTextureAtlas,CCTextureCache
- cocos2d-x CCTextureCache
- cocos2d-x之CCTextureCache 用法总结
- cocos2d-x 2.2.3 CCTextureCache的addImage简单分析
- 在 COCOS2D-X 中实现蒙版支持(一)——使用 CCRENDERTEXTURE
- CCSpriteBatchNode和CCTextureAtlas 详解-沈大海cocos2d-x教程21
- CCSpriteFrameCache和CCTextureCac…
- cocos2d-x节点(CCTextureCache.h)API
- CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析
- cocos2d-x学习笔记(14)--CCTextureCache
- cocos2d: 使用TexturePacker , pvr.ccz, CCSpriteBatchNode, CCSpriteFrameCache