在初始化成功 才会返回数据 否则返回NULL /创建一个渲染目标纹理。 CCRenderTexture *pRet = new CCRenderTexture(); //调用相应的初始化函数。 if(pRet && pRet->initWithWidthAndHeight(w, h, eFormat)) { //成功后交由内存管理器进行管理。 pRet->autorelease(); return pRet; } //不成功则释放置空返回NULL。 CC_SAFE_DELETE(pRet); return NULL; 字符串 追加 char png[20]; sprintf(png, "image-%d.png", counter); 析构函数的使用 //析构 CCRenderTexture::~CCRenderTexture() { //释放FBO glDeleteFramebuffers(1, &m_uFBO); //释放深度缓冲 if (m_uDepthRenderBufffer) { glDeleteRenderbuffers(1, &m_uDepthRenderBufffer); } //释放 CC_SAFE_DELETE(m_pUITextureImage); //移除监听响应函数。 CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, EVENT_COME_TO_BACKGROUND); //使用到了监听 释放监听 } //析构 RenderTextureSave::~RenderTextureSave() { //对占用的目标纹得和刷子精灵的引用计数减一。 m_pBrush->release(); m_pTarget->release(); //纹理管理器释放不用的纹理。 CCTextureCache::sharedTextureCache()->removeUnusedTextures(); } //如果游戏有很多场景,在切换场景的时候可以把前一个场景的内存全部释放,防止总内存过高. CCTextureCache::sharedTextureCache()->removeAllTextures();// 释放到目前为止所有加载的图片 CCTextureCache::sharedTextureCache()->removeUnusedTextures();//将引用计数为1的图片释放掉 CCTextureCache::sharedTextureCache()->removeTexture(); //单独释放某个图片 CCSpriteFrameCache 与 CCTextureCache //释放的方法差不多。