飞机与敌机碰撞后开展remove,停止运行
飞机与敌机碰撞后进行remove,停止运行
调试指向retain()的计数器



爆炸:
remove
------解决思路----------------------
这个弹框只能说明你有代码处理时出现异常了,frame变量为空,不能看出具体原因
点终止,然后看vs中代码断到哪一句了,再检测那一句代码前后代码和内存变量情况,看是哪些是不正常的,再分析
调试指向retain()的计数器
爆炸:
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);
}
------解决思路----------------------
这个弹框只能说明你有代码处理时出现异常了,frame变量为空,不能看出具体原因
点终止,然后看vs中代码断到哪一句了,再检测那一句代码前后代码和内存变量情况,看是哪些是不正常的,再分析