2015-12-15 84 views
0

當我退出一個場景時,使用下面的代碼進入下一個場景;替換導致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的init部分是this;

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方法中添加它之後釋放它。