Белый экран для загрузки сцены cocos2d - PullRequest
0 голосов
/ 03 октября 2011

Я новичок в разработке игр cocos 2d и разработке игры, в которой мне нужно много раз перезагружать сцены из контроллера представления. Для этого я удаляю сцену и запускаю ее снова. Через 2 или более раз сцена загружается, но появляется белый экран и в консоли отображается ошибка «Ошибка OpenGL 0x0506 в - [EAGLView swapBuffers]».

вот мой код для добавления сцены-

             if ([[CCDirector sharedDirector] runningScene] == NULL) 
             {
    if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
        [CCDirector setDirectorType:kCCDirectorTypeDefault];

    CCDirector *director = [CCDirector sharedDirector];

    glView = [EAGLView viewWithFrame:[window bounds]
                                   pixelFormat:kEAGLColorFormatRGBA8
                                   depthFormat:GL_DEPTH_COMPONENT24_OES
                            preserveBackbuffer:NO
                                    sharegroup:nil
                                 multiSampling:YES
                               numberOfSamples:4];




    [director setOpenGLView:glView];        
    [director setDeviceOrientation:kCCDeviceOrientationPortrait];   
    [director setAnimationInterval:1.0/60];
    [window addSubview:glView];     

    [[CCDirector sharedDirector] runWithScene: [HelloWorldLayer node]];

}

и код для удаления сцены-

[[CCDirector sharedDirector].openGLView removeFromSuperview];
[[CCDirector sharedDirector] stopAnimation];
[[CCDirector sharedDirector] end];
[[CCDirector sharedDirector] release];

Пожалуйста, помогите мне, я не понимаю, в чем проблема. Благодарю.

1 Ответ

0 голосов
/ 11 октября 2011

Обратите внимание на две вещи:

  • не выпускайте CCDirector!Все, что вам нужно сделать, это вызвать stopAnimation, а затем startAnimation
  • не удалять openGLView из его супер-представления.Вместо этого просто скройте его: [CCDirector sharedDirector] .openGLView скрыто: ДА]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...