如题目所示,一下是调试的结果。。。新手,求原谅
_referenceCount=4038519040



爆炸的代码
void PlaneLayer::blowUp() {
bool isAlive = true;
if (isAlive)
{
isAlive = false;
auto animation = Animation::create();
animation->setDelayPerUnit(0.1f);
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_001.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_002.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_003.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_004.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_005.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_006.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_007.png"));
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("a_008.png"));
auto animate = Animate::create(animation);
auto removePlane1 = CC_CALLBACK_0(PlaneLayer::removePlane,this);
auto sequence = Sequence::create(animate,removePlane1,NULL);
//this->getChildByTag(AIRPLANE)->stopAllActions();
this->getChildByTag(AIRPLANE)->runAction(sequence);
}
}
remove代码
void PlaneLayer::removePlane(Node *pNode) {
this->removeChildByTag(AIRPLANE,true);
auto pScene = GameOverScene::create();
auto animateScene = TransitionMoveInT::create(0.8f,pScene);
Director::getInstance()->replaceScene(animateScene);
}
简单给个提示或者链接就行。。。
看起来似乎没什么。
谢谢啦,求来大神!!!!
擦, 几年没写 c++了, 差点被忽悠了, 应该是这样CallFunc::create(CC_CALLBACK_0(PlaneLayer::removePlane,this))
还是lua和js好 没有这么多恶心的语法
1>e:\vs2012_ult_chs\vs2012\vc\include\functional(1152): error C2064: 项不会计算为接受 1 个参数的函数
1> 类不会将“operator()”或用户定义的转换运算符定义到指向函数的指针或指向函数的引用(它们接受适当数量的参数)
1> e:\vs2012_ult_chs\vs2012\vc\include\functional(1152): 编译类 模板 成员函数“void std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,_V6_t,_V7_t,_V8_t,_V9_t,_V10_t,>::operator ()(void)”时
1> with
1>
1> _Forced=true,
1> _Ret=void,
1> _Fun=std::_Pmf_wrap<void (__thiscall PlaneLayer::* )(cocos2d::Node *),void,PlaneLayer,cocos2d::Node *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _V0_t=PlaneLayer const ,
1> _V1_t=std::_Nil,
1> _V2_t=std::_Nil,
1> _V3_t=std::_Nil,
1> _V4_t=std::_Nil,
1> _V5_t=std::_Nil,
1> _V6_t=std::_Nil,
1> _V7_t=std::_Nil,
1> _V8_t=std::_Nil,
1> _V9_t=std::_Nil,
1> _V10_t=std::_Nil,
1> =std::_Nil
1> ]
1> e:\vs2012_ult_chs\vs2012\vc\include\xrefwrap(431): 参见对正在编译的函数 模板 实例化“void std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,_V6_t,_V7_t,_V8_t,_V9_t,_V10_t,>::operator ()(void)”的引用
1> with
1>
1> _Forced=true,
1> _Ret=void,
1> _Fun=std::_Pmf_wrap<void (__thiscall PlaneLayer:: )(cocos2d::Node *),void,PlaneLayer,cocos2d::Node *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _V0_t=PlaneLayer const ,
1> _V1_t=std::_Nil,
1> _V2_t=std::_Nil,
1> _V3_t=std::_Nil,
1> _V4_t=std::_Nil,
1> _V5_t=std::_Nil,
1> _V6_t=std::_Nil,
1> _V7_t=std::_Nil,
1> _V8_t=std::_Nil,
1> _V9_t=std::_Nil,
1> _V10_t=std::_Nil,
1> =std::_Nil
1> ]
1> f:\cocosdemo\plane\classes\planelayer.cpp(119): 参见对正在编译的类 模板 实例化“std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,_V6_t,_V7_t,_V8_t,_V9_t,_V10_t,>”的引用
1> with
1>
1> _Forced=true,
1> _Ret=void,
1> _Fun=std::_Pmf_wrap<void (__thiscall PlaneLayer:: )(cocos2d::Node *),void,PlaneLayer,cocos2d::Node *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _V0_t=PlaneLayer *const ,
1> _V1_t=std::_Nil,
1> _V2_t=std::_Nil,
1> _V3_t=std::_Nil,
1> _V4_t=std::_Nil,
1> _V5_t=std::_Nil,
1> _V6_t=std::_Nil,
1> _V7_t=std::_Nil,
1> _V8_t=std::_Nil,
1> _V9_t=std::_Nil,
1> _V10_t=std::_Nil,
1> =std::_Nil
1> ]
========== 生成: 成功 0 个,失败 1 个,最新 3 个,跳过 0 个 ==========
醉了,这又是什么情况啊?
语法不对呗 语法的问题自己改
哦哦~~又得慢慢找了。。。
语法问题解决了,飞机也能爆炸了,但是还是无法实现场景跳转。。。

看断点啊。。继续改