dans les applications que j'ai créé, je joins habituellement le directeur cocos2d à une vue à savoir
[[Director shareddirector] attachInView:myView];
Cela signifie que je peux superposer d'autres vues chargées de grué devant elle. Par exemple. Je pourrais faire quelque chose comme. . .
dans YourAppDelegate.h
GameViewController *gameViewController;
ScoresViewcontroller *scoresViewController;
....
@property (nonatomic, retain) GameViewController *gameViewController;
@property (nonatomic, retain) ScoresViewController *scoresViewController;
et à l'intérieur YourAppDelegate.m applicationDidFinishLaunching:
// Create the cocos2d view
gameViewController = [[GameViewController alloc] init];
[window addSubview:gameViewController.view];
// Create the high scores view and controller
scoresViewController = [[ScoresViewController alloc] initwithNibName:@"scoresNib"
bundle:nil];
[window addSubview:scoresViewController.view];
Enfin, à l'intérieur du GameViewController vous auriez
- (void) loadView {
self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)];
[[Director sharedDirector] attachInView:self.view];
// Now do your cocos2d scene stuff to start everything off e.g. create a scene
// and call runWithScene: on the sharedDirector
}
Ici, le code cocos2d fonctionne en arrière-plan et la vue des scores est superposée devant (ou caché jusqu'à ce que vous en ayez besoin etc.).
Puis, lorsque votre jeu a besoin de faire quelque chose pour les scores élevés, le GameViewController peut simplement obtenir le HighScoresViewController du délégué app-à-dire
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.scoresViewController.view.hidden = NO;
Sam
PS Les réponses à this question pourrait aussi être utile pour vous :)
Salut, Merci.Cela fonctionne pour moi .... mais est-ce la seule idée ... ?? – Rony