Когда я выхожу из одной сцены в другую, используя следующий код;Замена смены сцены на Cocos2dx
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 - это;
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);
Тогда игра не падает, однако желаемый результат не достигается, поскольку мне нужно использовать скриншот.
Есть ли способ, который я могу назвать выше, без необходимости добавлять его в качестве ребенка?
Зачем стажировка? Вы пытаетесь обойти узел для использования в следующей сцене? –