cocos2d 2.0-rc2: завершите директорию и перезапустите

У меня есть игра на основе cocos2d, которая использует меню UIKit, поэтому я использую фреймворк только для одного viewcontroller, который является самой игрой. Кроме того, у него есть только одна сцена. Поскольку cocos2d 2.0 сам директор являетсяUIViewController подкласс, так что я просто запихнуть его в свойMenuViewController когда пользователь нажимает кнопку запуска:

-(void)startGameButtonPressed {

    CCDirectorIOS* director = (CCDirectorIOS *) [CCDirector sharedDirector];


    // Create an CCGLView with a RGB565 color buffer, and a depth buffer of 0-bits
    self.glView = [CCGLView viewWithFrame:CGRectMake(0, 0, 480, 320)
                              pixelFormat:kEAGLColorFormatRGB565    //kEAGLColorFormatRGBA8
                              depthFormat:0 //GL_DEPTH_COMPONENT24_OES
                       preserveBackbuffer:NO
                               sharegroup:nil
                            multiSampling:NO
                          numberOfSamples:0];

    // attach the openglView to the director
    [director setView:glView];
    [director runWithScene:[GameLayer scene]];
    [director setDelegate:(id <CCDirectorDelegate>) [[UIApplication sharedApplication] delegate]];
    [self.navigationController pushViewController:director animated:YES];
}

Это отлично работает при первом вызове метода, когда пользователь запускает первую игру. Когда игра заканчивается, я звоню[[CCDirector sharedDirector] end].

Большая часть настройки директора выполняется в appDelegate (она не изменена по сравнению со стандартным шаблоном Cocos2d). Я только положилCCGLView в качестве оставшейся собственности в мойMenuViewControllerпотому что в противном случае приложение вылетает, когда[[CCDirector sharedDirector] end] называется иCCGLView не сохраняется. Я думаю, что это может быть ошибка Cocos2D. В[[CCDirector sharedDirector] end] рамки называет[self setView:nil], но он все еще пытается получить доступ к представлению позже (возможно, в другом потоке).

Проблема теперь в том, что при втором вызове моего метода выше (когда пользователь хочет запустить другую игру из меню),startGameButtonPressed, режиссер толкается, но экран остается черным. Игра запущена и отвечает, я просто ничего не вижу. Может кто-нибудь помочь мне с этим?

Ответы на вопрос(4)

Ваш ответ на вопрос