過關(guān)場景跳轉(zhuǎn)
雷哥啊,你那個(gè)過關(guān)后的場景跳轉(zhuǎn)怎么弄的?你說休息時(shí)間改的,直接調(diào)用toGameScene方法,看到效果是怪物死了后又復(fù)活了,這個(gè)是怎么弄的,,我在判定怪物死完后,調(diào)用toGameScene,當(dāng)怪物死了程序就崩了。。。應(yīng)該是那個(gè)地方?jīng)]處理,怎么弄的啊求救雷哥!!
雷哥啊,你那個(gè)過關(guān)后的場景跳轉(zhuǎn)怎么弄的?你說休息時(shí)間改的,直接調(diào)用toGameScene方法,看到效果是怪物死了后又復(fù)活了,這個(gè)是怎么弄的,,我在判定怪物死完后,調(diào)用toGameScene,當(dāng)怪物死了程序就崩了。。。應(yīng)該是那個(gè)地方?jīng)]處理,怎么弄的啊求救雷哥!!
2015-08-18
舉報(bào)
2016-11-19
我寫的也是同樣崩,最后我分析大概是因?yàn)镃ontrolLayer::purge()將ControlLayer類的所有成員都釋放了,tsm的內(nèi)存也被回收掉了,所以導(dǎo)致ControlLayer::update函數(shù)中再tsm->toGameScene();就崩了。
然后:
1,在DataManager里加入成員:SceneManager* sceneManager;
2,在AppDelegate::applicationDidFinishLaunching()中創(chuàng)建完SceneManager對象之后加上一句:DataManager::getInstance()->sceneManager = sceneManager;
3,在ControlLayer::update中用DataManager::getInstance()->sceneManager->toGameScene();代替tsm->toGameScene();
我這么改肯定是不專業(yè),但是這么一折騰不崩了。
2016-11-14
這個(gè)問題困擾了我好久,最后大概弄清楚了原因。應(yīng)該是schudule方法的bug吧,unSchedule之后還會執(zhí)行一幀update方法。這時(shí)問題就來了:在上一幀中已經(jīng)釋放了ControlLayer中的所有資源,所以這一幀的update方法中會報(bào)各種野指針錯(cuò)誤(EXC_BASD_ACCESS)。
順序大概是這樣(ControlLayer1:upadte(釋放資源、停止定時(shí)器) -> 創(chuàng)建ControLayer2 ->?ControlLayer1:upadte(崩))
原因嘛,就是這樣,解決方法我也太不會。我是在update開始加一句判斷,if(indexLevel != DataManager::getInstance()->getLevelIndex()) return; (indexlLevel 在init方法里初始化為DataManager里的level)。雖然做法很差,但也達(dá)到效果了
2015-10-03
我也是同樣的問題,toGameScene的第一句執(zhí)行了就崩了,好像是關(guān)于內(nèi)存的問題。不知道怎么解決。
2015-09-17
我也是,第一關(guān)打死牛高清之后程序執(zhí)行場景跳轉(zhuǎn)就掛掉了