2011-09-26 3 views
1

Je reçois cette erreur dans une situation particulière et je ne sais pas comment la résoudre.Cocos2d avec GameCenter, OpenGLError

Après que j'invite quelqu'un à jouer avec moi, je touche le bouton 'uninvite' puis pressez la touche i cancell et il appelle cette méthode:

// The user has cancelled matchmaking 
- (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController {  
    [self.presentingViewController dismissModalViewControllerAnimated:YES]; 
    NSLog(@"User cancelled the invitation.");  
} 

Et après que j'arrive obtenir cette erreur:

Erreur OpenGL 0x0506 dans - [EAGLView swapBuffers]

Encore et encore.

Si je n'invite personne et que j'appelle simplement annuler, il appelle à nouveau cette méthode, mais il revient correctement à l'écran de jeu. Est-ce que quelqu'un a déjà vu quelque chose comme ça? Dois-je arrêter l'invitation avant de rejeter la vue ou quelque chose?

Répondre

0

Vous ne savez pas si cela peut aider, mais peut-être mettre en pause le CCDirector avant d'afficher l'interface utilisateur du Game Center et le reprendre lorsque toutes les actions de Game Center sont terminées.

2

J'ai eu un problème similaire et l'ai corrigé. C'était difficile de trouver une solution.

je devais changer ma méthode init dans AppDelegate comme ceci:

- (void) applicationDidFinishLaunching:(UIApplication*)application 
{ 
    CC_DIRECTOR_INIT(); 
    // Obtain the shared director in order to... 
    CCDirector *director = [CCDirector sharedDirector]; 
    // Sets landscape mode 
    [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft]; 

    if(! [director enableRetinaDisplay:YES]) 
     CCLOG(@"Retina Display Not supported"); 
    [[CCDirector sharedDirector] runWithScene: [MainMenuLayer scene]]; 
    [[CCDirector sharedDirector] setDisplayFPS:NO]; 
    [self authenticateLocalPlayer]; 
} 

Rejeter:

-(void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController{ 
    [tempController dismissModalViewControllerAnimated:YES]; 
     [tempController.view removeFromSuperview]; 
    [[CCDirector sharedDirector] resume]; 
}