第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

過關場景跳轉

雷哥啊,你那個過關后的場景跳轉怎么弄的?你說休息時間改的,直接調用toGameScene方法,看到效果是怪物死了后又復活了,這個是怎么弄的,,我在判定怪物死完后,調用toGameScene,當怪物死了程序就崩了。。。應該是那個地方沒處理,怎么弄的啊求救雷哥??!

正在回答

4 回答

我寫的也是同樣崩,最后我分析大概是因為ControlLayer::purge()將ControlLayer類的所有成員都釋放了,tsm的內存也被回收掉了,所以導致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è),但是這么一折騰不崩了。


1 回復 有任何疑惑可以回復我~

這個問題困擾了我好久,最后大概弄清楚了原因。應該是schudule方法的bug吧,unSchedule之后還會執(zhí)行一幀update方法。這時問題就來了:在上一幀中已經釋放了ControlLayer中的所有資源,所以這一幀的update方法中會報各種野指針錯誤(EXC_BASD_ACCESS)。

順序大概是這樣(ControlLayer1:upadte(釋放資源、停止定時器) -> 創(chuàng)建ControLayer2 ->?ControlLayer1:upadte(崩))

原因嘛,就是這樣,解決方法我也太不會。我是在update開始加一句判斷,if(indexLevel != DataManager::getInstance()->getLevelIndex()) return; (indexlLevel 在init方法里初始化為DataManager里的level)。雖然做法很差,但也達到效果了

1 回復 有任何疑惑可以回復我~

我也是同樣的問題,toGameScene的第一句執(zhí)行了就崩了,好像是關于內存的問題。不知道怎么解決。

0 回復 有任何疑惑可以回復我~

我也是,第一關打死牛高清之后程序執(zhí)行場景跳轉就掛掉了

0 回復 有任何疑惑可以回復我~
#1

獨步丶一人 提問者

怎么解決啊。我還是沒找到
2015-09-28 回復 有任何疑惑可以回復我~
#2

慕神5368544

找到辦法了,ControlLayer下的purge方法里面的最后一句話, this->removeFromParent(); 這句刪除了就行了。 具體原因。。。不知道。。
2015-10-03 回復 有任何疑惑可以回復我~
#3

Clayhaw 回復 慕神5368544

你這樣根本沒有釋放場景當然不會報錯。
2016-11-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

過關場景跳轉

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號