2012-03-02 12 views
0

私は通常のiOS Cocos2dゲームを持っています。私はMainMenuViewControllerで始まり、 "new game"ボタンが押されたときに私のrootViewControllerをプッシュし、次にcocos2dシーンとHelloWorldLayerを設定します。私は確信しています。cocos2dでシーンを終了するときのEXC_BAD_ACCESS

問題はゲームを終了したいときです。プレイヤーに残った人生が0で、特定のコリソンが検出されたら、シーンを終了してメインメニューに戻りたいと思います。だから私は、衝突が検出された直後に私のupdate: (ccTime) dt方法の中から、次のメソッドを呼び出します。

-(void)endScene { 
    [[SimpleAudioEngine sharedEngine] stopBackgroundMusic]; 
    [[CCDirector sharedDirector] end]; 
    [_rootViewController.navigationController popViewControllerAnimated:YES]; 
} 

問題がシーンを終了するとき、私はEXC_BAD_ACCESSさまざまなエラーを取得していることです。私が最も頻繁に取得1が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> 

です!

答えて

0

[[CCDirector sharedDirector] end];

シーンを終了するために呼び出すものではありません。シーンを切り替える方法については、この例では

ルック:

http://ganbarugames.com/2010/12/understanding-scenes-in-cocos2d-iphone/

CCTransitionRotoZoom *transition = [CCTransitionRotoZoom transitionWithDuration:1.0 scene:[HelloWorld scene]]; 
// Tell the director to run the transition 
[[CCDirector sharedDirector] replaceScene:transition]; 
+0

リンクは前の画面を想定しているようだということもCocos2sシーンです。私の問題は、私は1つのシーンしか持っていませんし、Cocos2dを使いたいのですが、Cocos2dを使わない最初のViewControllerにポップバックして、通常のUIKitペンです。だから、なぜシーンを置き換えるのが役に立つのか分からない。 – user1023127

+0

OK Ive得ました - 私はセレクターを停止し、Imが完了したら表示をポップし、ゲームに戻ると、再起動する代わりにシーンを置き換えます。仕事をしているようだ。 – user1023127

+0

ああ、大丈夫です。シーン間の切り替えの例が正しいと思います。あなたの質問を誤って解釈したのは、私がiPhoneのゲームを書いたときと同じように、メニューが別の場面だと思ったからです。 :) – Almo

関連する問題