2009-04-09 16 views
0

完了したら同じレベルのゲームを再開しようとしています。私は完了時に表示する警告表示を使用しています。 AlertView(EndとPlayAgain)で2つのボタンを使用しています。終わりに触れたら、それはうまくいきます。問題は一度playAgainに触れた場合です AlertViewがもう一度表示されますが、私はゲームを再開する必要があります。 AlertViewのボタンインデックスのコードは次のとおりです。cocos2dのアラートビューを使用してゲームシーンを再開する方法

-(void)alertView :(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    { 
    if(buttonIndex==0){ 
     exit(0); 
     NSLog(@"exit"); 
    } 
    else if(buttonIndex==1){ 

     // [self retain]; 
     GameScene *gameScene = [GameScene node]; 
     [[Director sharedDirector] replaceScene:gameScene]; 

     NSLog(@"Play Again"); 
    } 
} 

ここでもう一度自分のgameceneを読み込もうとしています。それは正しい方法ですか?

私にこれを手伝ってください。事前に

おかげで、

答えて

0

私の知る限り見ることができるように、新しい(同じシーン)をロードするためにあなたのコードでは何の問題もありません。これは同じシーンに再び切り替えるために使用している方法でもあります。

"else if"ステートメントのコードが実際にヒットしましたか? else ifブロックにブレークポイントを置くとどうなりますか?

3

同じ事が私に起こりました。私にとって、フレームごとに起こっていたスケジューラがあり、メッセージが実際に出現する前に2回起こることが判明しました。私は単純に次のように使用しました。

[self unschedule:@selector(aFunction:)]; 

これはセレクタが2回登録されないようにスケジュールされていません。これが誰かを助けることを願っていますこれが当てはまらない場合は、試してみてください。

[[CCDirector sharedDirector] pause]; 

アラームを2回呼び出すことをシーンが一時停止させたいと考えています。

0

URコードは完全に右であるしかし、uは

[[Director sharedDirector] replaceScene:gameScene]; 

、このコードを使用してrの場合はシーンが戻って返すことはできませんUを交換しているので。あなたが戻ってきたい場合は、このようなプッシュとポップを使用してください。

[[Director sharedDirector] pushScene:[calssName scene]]; 
関連する問題