您的位置:首页 > 移动开发 > Cocos引擎

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Cocos2d-x Cache