柒哥原创 ,欢迎转载,转载请在明显处注明! 谢谢。
原文地址:http://blog.csdn.net/iasxk/article/details/9531785
多个场景自动切换是不是需要多个定时器,是的。
所以我想当然的在init()中定义的两个定时器
bool MainScene::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
//启动定时器
this->schedule(schedule_selector(MainScene::step),1.2f);
this->schedule(schedule_selector(MainScene::startGame),5.0f);//错误
bRet = true;
} while (0);
return bRet;
}
这样是不会在1.2s 后切换一个场景,然后又在5s后又切换一个场景。
原因:
在MainScene场景被切换后,MainScene里面的定时器就不会在另一个场景中启作用。
解决:
这个this指的就是当前的场景对象,这个是可以省略的。
假如你的第二个场景是secondScene,你想在第二个场景时,过5s切换到第三个场景,假如是thirdScene.那么就在切第二个场景前定义第二个定时器
secondScene->schedule(schedule_selector(MainScene::startGame),5.0f);正确
CCDirector::sharedDirector()->replaceScene(secondScene);