两个cache:CCTextureCache、CCSpriteFrameCache的使用

[i][b]本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/312[/b]
[/i]
注意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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值