cocos2d 2.0-rc2: finalize o diretor e reinicie

Eu tenho um jogo cocos2d que usa menus UIKit, então eu só uso o framework para um viewcontroller, que é o jogo em si. Além disso, tem apenas uma cena. Desde cocos2d 2.0 o próprio diretor é umUIViewController subclasse, então eu apenas empurrei na minhaMenuViewController quando o usuário toca no botão Iniciar:

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

Isso funciona bem pela primeira vez que o método é chamado, quando o usuário inicia o primeiro jogo. Quando o jogo acabou, eu chamo[[CCDirector sharedDirector] end].

A maior parte da configuração do diretor é feita no appDelegate (ele é mantido inalterado no modelo Cocos2d padrão). Eu só coloquei oCCGLView como uma propriedade retida no meuMenuViewController, porque senão o aplicativo trava quando[[CCDirector sharedDirector] end] é chamado e oCCGLView não é retido. Eu acho que isso pode ser um bug cocos2d. Em[[CCDirector sharedDirector] end] as chamadas do framework[self setView:nil], mas ainda tenta acessar a exibição mais tarde (provavelmente em outro thread).

O problema agora é que na segunda chamada do meu método acima (quando o usuário quer iniciar outro jogo a partir do menu),startGameButtonPressed, o diretor é empurrado, mas a tela fica preta. O jogo está correndo e respondendo, eu não vejo nada. Alguém por favor pode me ajudar com isso?

questionAnswers(4)

yourAnswerToTheQuestion