2011-09-26 92 views
1

我在特定的情况下得到这个错误,我不知道如何解决它。Cocos2d与GameCenter,OpenGLError

后邀请其他人跟我玩,我摸“取消邀请”按钮,然后我打cancell并调用此方法:

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

这种情况发生后,我得到这个错误:

OpenGL error 0x0506 in - [EAGLView swapBuffers]

一遍又一遍。

如果我不邀请某人,只是点击取消,它会再次调用该方法,但它会正确回到游戏屏幕。有没有人见过这样的事情?在我解散视图之前,我是否必须停止邀请?

回答

0

不知道这是否会有所帮助,但可能在显示Game Center UI之前暂停CCDirector并在完成所有Game Center操作后恢复它。

2

我有类似的问题,并修复它。很难找到解决方案。

我不得不改变我的init()方法中的AppDelegate这样的:

- (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]; 
} 

辞退:

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