当我退出一个场景时,使用以下代码退出到下一个场景;
if(_next->boundingBox().containsPoint(location))
{
LipsColorScene::flagnext=false;
CCLog("click next");
_next->setVisible(false);
_next->setPosition(ccp(1500, -500));
lipstickscrollview->setVisible(false);
imageForShowingMask->setVisible(false);
// this->setScale(1.0f);
lipstickscrollview->setVisible(false);
LipsColorScene::screenshot= this;
CCDirector::sharedDirector()->getRunningScene()->removeChild(screenshot);
lipstickscrollview->setVisible(false);
imageForShowingMask->setVisible(false);
// this->setScale(1.0f);
lipstickscrollview->setVisible(false);
// CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sounds/btn_clicksound.mp3");
CCDirector::sharedDirector()->replaceScene(LastScene::scene());
}
当它显示LastScene时,它会崩溃,LastScene的init部分就是这个;
if (LipsColorScene::screenshot !=NULL)
{
LipsColorScene::screenshot->setPosition(ccp(115.833313,-111.562469));
LipsColorScene::screenshot->setRotation(-17);
this->addChild(LipsColorScene::screenshot,0);
}
如果我删除此行;
this->addChild(LipsColorScene::screenshot,0);
然后游戏不会崩溃,但是,由于我需要使用屏幕截图,因此无法实现所需的结果。
有没有办法可以调用上面的方法而无需将其作为孩子添加?
答案 0 :(得分:0)
您正在尝试添加无效指针LipsColorScene :: screenshot。在更换场景之前,您需要保留它,然后在init方法中添加它之后将其释放。