I have this code for cocos2d-x 3.x:
void MainMenu::StartGame(cocos2d::Ref* pSender) { auto director = Director::getInstance(); auto newScene = Scene::create(); director->replaceScene(newScene); //run Scene *maybeNewScene = director->getRunningScene(); CCASSERT ( maybeNewScene == newScene , "...") ; //Assert Fail auto hudLayer= HUD::create(); hudLayer->setPosition(Vec2::ZERO); scene->addChild(hudLayer, Z_NORMAL); } But When I get runnign scene by director->getRunningScene(), It gives me the scene which was running before calling director->replaceScene(). (the scene which is going to be destructed soon)
When I checked replaceScene() function, This function places newScene in some varibale called _nextScene but not assigned it to _runningScene .
Question: How can I access newScene, just some lines further? ( for example in HUD::init())