2009-12-16 3 views
0

J'ai une couche dans mon jeu. A la fin du jeu, je veux montrer à l'utilisateur un UIAlertView pour redémarrer ou quitter le jeu. Mais ça ne fonctionne pas. Je suis également donné le délégué UIAlertViewDelegate à la couche.Comment afficher UIAlertView sur Cocos2d Layer sur iPhone?

Des solutions?

Mon code suit,

-(void)gameFinished{ 
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; 

    [self unschedule:@selector(checkForCollision)]; 
    [self unschedule:@selector(dropObject)]; 
    [self stopBackgroundMusic]; 

    [self startNewForegroundMusic:@"GameOver" ofType:@"caf"]; 
    [self playForegroundMusic]; 

    [[Director sharedDirector] pause]; 
    UIAlertView *view=[[UIAlertView alloc] initWithTitle:@"Game Finished" message:@"Want to play again?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes"]; 
    [view show]; 
    [view release]; 
} 
+0

S'il vous plaît modifier votre message indenter votre code (il y a un bouton « exemple de code » dans la vue d'édition. Sélectionnez la partie de code et a frappé bouton 'code sample') – nash

+0

Hey Nash, Merci pour votre suggestion. À l'avenir, je m'en occuperai. – Jay

Répondre

1

Est-ce que votre accident de code, ou faut-il tout simplement pas afficher?

Vous avez une légère erreur dans la ligne

[[UIAlertView alloc] initWithTitle:@"Game Finished" 
        message:@"Want to play again?" 
        delegate:self cancelButtonTitle:@"No" 
        otherButtonTitles:@"Yes"] 

Cela devrait être

[[UIAlertView alloc] initWithTitle:@"Game Finished" 
        message:@"Want to play again?" 
        delegate:self cancelButtonTitle:@"No" 
        otherButtonTitles:@"Yes", Nil] 

Note: le dernier paramètre est variable d'arguments, et devrait donc être mis fin à néant.

+0

Hey Nash, Merci beaucoup. Cela a fonctionné. – Jay

-1

Essayez de montrer la alertview avant que le directeur est une pause, il peut travailler ..