課程
/后端開發
/C++
/Cocos2d-x游戲之七夕女神抓捕計劃
雷哥啊,你那個過關后的場景跳轉怎么弄的?你說休息時間改的,直接調用toGameScene方法,看到效果是怪物死了后又復活了,這個是怎么弄的,,我在判定怪物死完后,調用toGameScene,當怪物死了程序就崩了。。。應該是那個地方沒處理,怎么弄的啊求救雷哥??!
2015-08-18
源自:Cocos2d-x游戲之七夕女神抓捕計劃 5-3
正在回答
我寫的也是同樣崩,最后我分析大概是因為ControlLayer::purge()將ControlLayer類的所有成員都釋放了,tsm的內存也被回收掉了,所以導致ControlLayer::update函數中再tsm->toGameScene();就崩了。
然后:
1,在DataManager里加入成員:SceneManager* sceneManager;
2,在AppDelegate::applicationDidFinishLaunching()中創建完SceneManager對象之后加上一句:DataManager::getInstance()->sceneManager = sceneManager;
3,在ControlLayer::update中用DataManager::getInstance()->sceneManager->toGameScene();代替tsm->toGameScene();
我這么改肯定是不專業,但是這么一折騰不崩了。
這個問題困擾了我好久,最后大概弄清楚了原因。應該是schudule方法的bug吧,unSchedule之后還會執行一幀update方法。這時問題就來了:在上一幀中已經釋放了ControlLayer中的所有資源,所以這一幀的update方法中會報各種野指針錯誤(EXC_BASD_ACCESS)。
順序大概是這樣(ControlLayer1:upadte(釋放資源、停止定時器) -> 創建ControLayer2 ->?ControlLayer1:upadte(崩))
原因嘛,就是這樣,解決方法我也太不會。我是在update開始加一句判斷,if(indexLevel != DataManager::getInstance()->getLevelIndex()) return; (indexlLevel 在init方法里初始化為DataManager里的level)。雖然做法很差,但也達到效果了
我也是同樣的問題,toGameScene的第一句執行了就崩了,好像是關于內存的問題。不知道怎么解決。
我也是,第一關打死牛高清之后程序執行場景跳轉就掛掉了
獨步丶一人 提問者
慕神5368544
Clayhaw 回復 慕神5368544
舉報
拯救陳無碼從游戲開發開始,如果你想逆襲,那么快來學習
2 回答老師 這個場景的素材在哪下載啊
1 回答提供的下載資料除了動畫效果,沒有開始場景的素材 和手柄素材
1 回答我跳轉界面的時候就中斷,我問別人說路徑不對
2 回答要背景圖片
5 回答背景圖加載不進去,
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-19
我寫的也是同樣崩,最后我分析大概是因為ControlLayer::purge()將ControlLayer類的所有成員都釋放了,tsm的內存也被回收掉了,所以導致ControlLayer::update函數中再tsm->toGameScene();就崩了。
然后:
1,在DataManager里加入成員:SceneManager* sceneManager;
2,在AppDelegate::applicationDidFinishLaunching()中創建完SceneManager對象之后加上一句:DataManager::getInstance()->sceneManager = sceneManager;
3,在ControlLayer::update中用DataManager::getInstance()->sceneManager->toGameScene();代替tsm->toGameScene();
我這么改肯定是不專業,但是這么一折騰不崩了。
2016-11-14
這個問題困擾了我好久,最后大概弄清楚了原因。應該是schudule方法的bug吧,unSchedule之后還會執行一幀update方法。這時問題就來了:在上一幀中已經釋放了ControlLayer中的所有資源,所以這一幀的update方法中會報各種野指針錯誤(EXC_BASD_ACCESS)。
順序大概是這樣(ControlLayer1:upadte(釋放資源、停止定時器) -> 創建ControLayer2 ->?ControlLayer1:upadte(崩))
原因嘛,就是這樣,解決方法我也太不會。我是在update開始加一句判斷,if(indexLevel != DataManager::getInstance()->getLevelIndex()) return; (indexlLevel 在init方法里初始化為DataManager里的level)。雖然做法很差,但也達到效果了
2015-10-03
我也是同樣的問題,toGameScene的第一句執行了就崩了,好像是關于內存的問題。不知道怎么解決。
2015-09-17
我也是,第一關打死牛高清之后程序執行場景跳轉就掛掉了