2013-01-23 3 views
2

Je développe multi-joueurs pour mon jeu et je l'ai rencontré après la délivrance J'utilise Cocos 2d 2.1, iOS 6 et le code ci-dessous pour afficher entremetteur (orientation Paysage)Bugged Game Center Matchmaker apparence

AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; 
    [[GCHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:4 viewController:[app navController] delegate:self]; 

Et c'est comment il apparaît enter image description here

code suivant est utilisé pour cette fonction

- (void)findMatchWithMinPlayers:(int)minPlayers maxPlayers:(int)maxPlayers 
      viewController:(UIViewController *)viewController 
        delegate:(id<GCHelperDelegate>)theDelegate { 

if (!gameCenterAvailable) return; 

matchStarted = NO; 
self.match = nil; 
self.presentingViewController = viewController; 
delegate = theDelegate; 
[presentingViewController dismissModalViewControllerAnimated:NO]; 

GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease]; 
request.minPlayers = minPlayers; 
request.maxPlayers = maxPlayers; 

GKMatchmakerViewController *mmvc = 
[[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease]; 
mmvc.matchmakerDelegate = self; 

[presentingViewController presentViewController:mmvc animated:YES completion:nil]; 

}

Répondre

0

est ce code dans HelloWorldLayer? si oui est-ce la première couche que le directeur appelle? J'ai le même problème mais c'est correctif si je suis strictement le modèle cocos2d qui a été créé pour moi. Ce qui signifie que j'utilise IntroLayer comme couche initiale et à partir de là, elle passe dans HelloWorldLayer où j'ai le code du centre de jeu. Je pense qu'il a quelque chose à voir avec le directeur en cours de chargement trop tard, mais je ne suis pas sûr

0

Cela se produit lorsque vous essayez de pousser sur un UIViewController, mais vous avez seulement un UIView dans votre application, et pas UIViewController . Laissez-moi deviner, vous n'avez pas de rootViewController.

Si vous travaillez à partir du modèle EAGLView, vous devez déclarer un UIViewController pour le UIView. Cela peut être aussi simple que,

- (void) applicationDidFinishLaunching:(UIApplication *)application 
{ 
    window.rootViewController = [[UIViewController alloc] init]; 
    window.rootViewController.view = glView; // MUST SET THIS UP, 
    // NOW THE EAGLView HAS A UIViewController. 

    [glView startAnimation]; 
} 

Ensuite, chaque fois que vous voulez pousser sur un de ces GameKit UIViewControllers, utilisez la rootViewController de méthode presentViewController de votre objet fenêtre

Par exemple:

[self.window.rootViewController presentViewController:vc animated:TRUE completion:^(void){puts("DONE");} ] ; 

Le bugginess s'en ira et la fenêtre sera correctement formée.