0
我有一個通常的iOS Cocos2d遊戲。我從一個MainMenuViewController開始,然後在按下「新遊戲」按鈕時,它會推送我的rootViewController,然後設置cocos2d場景和HelloWorldLayer。林不知道是否有任何相關的。EXC_BAD_ACCESS當cocos2d結束場景時
問題是當我想結束我的遊戲。當玩家剩餘0生命並且檢測到某個碰撞時,我希望場景結束,並且我想彈回到我的主菜單。因此,我調用下面的方法從我update: (ccTime) dt
方法中檢測到碰撞後立即:
-(void)endScene {
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic];
[[CCDirector sharedDirector] end];
[_rootViewController.navigationController popViewControllerAnimated:YES];
}
的問題是結束時的情景,我得到一個各種EXC_BAD_ACCESS
錯誤。一個我得到最經常是CCScheduler.m:
// delete all updates that are marked for deletion
// updates with priority < 0
DL_FOREACH_SAFE(updatesNeg, entry, tmp) {
if(entry->markedForDeletion)
{
[self removeUpdateFromHash:entry]; //THIS IS WHERE IS GET EXC_BAD_ACCESS
}
}
由cocos2d的記錄的唯一的事情就是
2012-03-02 13:36:20.849 Psycho Circles[25265:707] cocos2d: deallocing <CCScheduler: 0x3a3330>
任何幫助,將不勝感激!
這個鏈接似乎假定以前的屏幕也是一個Cocos2s場景。我的問題是我只有1場景,然後我想用Cocos2d完成,然後回到我的第一個ViewController,它不使用Cocos2d,只是一個普通的UIKit筆尖。所以我不明白爲什麼更換場景會有所幫助。 – user1023127 2012-03-02 19:13:02
OK我知道了 - 我只是停止選擇器並在完成時彈出視圖,然後當我回到遊戲中時,我將替換場景而不是重新啓動。似乎工作。 – user1023127 2012-03-02 19:25:32
啊,好的。你說得對,這個例子是在場景之間切換的。我錯誤地解釋了你的問題,因爲我認爲菜單是另一個場景,就像我寫iPhone遊戲時一樣。 :) – Almo 2012-03-02 19:31:17