Cocos2d с GameCenter, OpenGLError - PullRequest
       23

Cocos2d с GameCenter, OpenGLError

1 голос
/ 26 сентября 2011

Я получаю эту ошибку в конкретной ситуации, и я не знаю, как ее решить.

После того, как я приглашаю кого-то поиграть со мной, я нажимаю кнопку «удалить», затем нажимаю «cancell», и она вызывает этоМетод:

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

И после этого я получаю эту ошибку:

Ошибка OpenGL 0x0506 в - [EAGLView swapBuffers]

Снова и снова.

Если я не приглашаю кого-то и просто нажимаю «Отмена», он снова вызывает этот метод, но возвращается на экран игры правильно.Кто-нибудь видел что-то подобное раньше?Должен ли я остановить приглашение, прежде чем я отклоню представление или что-то еще?

Ответы [ 2 ]

2 голосов
/ 03 мая 2012

У меня была похожая проблема, и я ее исправил. Трудно было найти решение.

Мне пришлось изменить метод 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];
}
0 голосов
/ 27 сентября 2011

Не уверен, поможет ли это, но, возможно, остановите CCDirector перед отображением пользовательского интерфейса Game Center и возобновите его, когда все действия Game Center будут выполнены.

...