Cocos2dx中的引用计数和自动回收池(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-11-18 20:55 点击:

p>        // 父类初始化  

p>        //////////////////////////////////////////////////////////////////////////  

p>  

p>        CC_BREAK_IF(! CCLayer::init());  

p>        CCSprite* bomb1 = CCSprite::create("CloseNormal.png");  

p>        CCSprite* bomb2 = CCSprite::create("CloseNormal.png");  

p>        CCSprite* bomb3 = CCSprite::create("CloseNormal.png");  

p>        CCSprite* bomb4 = CCSprite::create("CloseNormal.png");  

p>        CCSprite* bomb5 = CCSprite::create("CloseNormal.png");  

p>        CCSprite* bomb6 = CCSprite::create("CloseNormal.png");  

p>  

p>        addChild(bomb1,1);  

p>        addChild(bomb2,1);  

p>        addChild(bomb3,1);  

p>        addChild(bomb4,1);  

p>        addChild(bomb5,1);  

p>        addChild(bomb6,1);  

p>  

p>        m_pBombsDisplayed = CCArray::create(bomb1,bomb2,bomb3,bomb4,bomb5,bomb6,NULL);  

p>  

p>        this->scheduleUpdate();  

p>  

p>        bRet = true;  

p>    } while (0);  

p>  

p>    return bRet;  

p>}  

p>  

p>void HelloWorld::update(ccTime dt)  

p>{  

p>    refreshData();  

p>}  

p>  

p>void HelloWorld::refreshData()  

p>{  

p>    m_pBombsDisplayed->objectAtIndex(0)->setPosition(cpp(100,100));  

p>}  

p> 

p>他的错误是,m_pBombsDisplayed被CCArray::create(…)这个静态构造函数中穿件,这个数组被标志位了autorelease。那么在当前消息队列末尾,它将由CCAutoreleasePool删除掉。因为当后来的消息队列调用HelloWorld::update(ccTime)的时候,m_pBombsDisplayed 已经是一个空指针了,因此导致了崩溃。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1