auto sprite = Sprite::create("HelloWorld.png");
引擎是会先先在TextureCache纹理缓存中查找HelloWorld.png的文件名对应的纹理,
找不到该纹理的话再在源文件路径中查找该HelloWorld.png的文件,再将该文件的纹理添加到TextureCache纹理缓存中
(下次再使用HelloWorld.png的图片时就不用再加载,从而降低内存的使用和提高渲染效率)。
即使你释放了这个精灵的对象,该纹理也会一直存放在纹理缓存中,以便下一次使用。
当然你也可以手动释放掉该纹理,使用Director::getInstance()->getTextureCache()->removeUnusedTextures();
会释放当前所有引用计数为1的纹理,即目前没有被使用的纹理。比如新场景创建好后,可以使用此方法释放没有使用的纹理。
使用Director::getInstance()->getTextureCache()->removeTextureForKey("HelloWorld.png")释放特定的纹理
CCSprite::create(const char *pszFileName):pobSprite->initWithFile(pszFileName)
CCSprite::initWithFile(const char *pszFilename): CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage
(pszFilename);
CCTextureCache::addImage(const char * path):texture = (CCTexture2D*)m_pTextures->objectForKey(pathKey.c_str());
引擎是会先先在TextureCache纹理缓存中查找HelloWorld.png的文件名对应的纹理,
找不到该纹理的话再在源文件路径中查找该HelloWorld.png的文件,再将该文件的纹理添加到TextureCache纹理缓存中
(下次再使用HelloWorld.png的图片时就不用再加载,从而降低内存的使用和提高渲染效率)。
即使你释放了这个精灵的对象,该纹理也会一直存放在纹理缓存中,以便下一次使用。
当然你也可以手动释放掉该纹理,使用Director::getInstance()->getTextureCache()->removeUnusedTextures();
会释放当前所有引用计数为1的纹理,即目前没有被使用的纹理。比如新场景创建好后,可以使用此方法释放没有使用的纹理。
使用Director::getInstance()->getTextureCache()->removeTextureForKey("HelloWorld.png")释放特定的纹理
CCSprite::create(const char *pszFileName):pobSprite->initWithFile(pszFileName)
CCSprite::initWithFile(const char *pszFilename): CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage
(pszFilename);
CCTextureCache::addImage(const char * path):texture = (CCTexture2D*)m_pTextures->objectForKey(pathKey.c_str());
167

被折叠的 条评论
为什么被折叠?



