2011-10-03 5 views
0

저는 코코스 2D 게임 개발과 새로운 컨트롤러를 여러 번 볼 필요가있는 게임을 개발하고 있습니다.이 장면을 제거하고 다시 실행하십시오 .2 번 이상 장면이로드되지만 흰색 화면이 나타나고 콘솔에서 "OpenGL error 0x0506 in - [EAGLView swapBuffers]"오류가 표시됩니다. 여기 흰색 화면으로 cocos2d 장면을로드하십시오.

좀 도와주십시오 장면 -

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

를 제거 내 장면 -

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

}

를 추가하는 코드와 코드 문제입니다 나는 점점 아니에요 . 감사합니다. . 노트의

답변

0

두 가지 :

  • CCDirector를 공개하지 않습니다! stopAnimation을 호출하고 나중에 startAnimation을 호출하면됩니다.
  • superview에서 openGLView를 제거하지 마십시오. 대신, 그냥 숨기세요 : [CCDirector sharedDirector] .openGLView 숨김 : 예]
+0

답장을 보내 주셔서 감사합니다. –