Iphone 用于加载cocos2d场景的白色屏幕
我是cocos 2d游戏开发新手,正在开发一款需要多次从view controller重新加载场景的游戏。为此,我删除了场景并再次运行。在加载场景2次或更多次后,出现了白屏,并且在控制台中显示错误“OpenGL错误0x0506 in-[EAGLView swapBuffers]” 下面是我添加场景的代码-Iphone 用于加载cocos2d场景的白色屏幕,iphone,cocos2d-iphone,Iphone,Cocos2d Iphone,我是cocos 2d游戏开发新手,正在开发一款需要多次从view controller重新加载场景的游戏。为此,我删除了场景并再次运行。在加载场景2次或更多次后,出现了白屏,并且在控制台中显示错误“OpenGL错误0x0506 in-[EAGLView swapBuffers]” 下面是我添加场景的代码- if ([[CCDirector sharedDirector] runningScene] == NULL) { if( ! [
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];
}
和用于删除场景的代码-
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];
请帮帮我,我不明白问题出在哪里。
谢谢 需要注意两件事:
- 不要释放CCDirector!您所需要做的就是调用stopAnimation和稍后的startAnimation
- 不要从超级视图中删除openGLView。相反,只需隐藏它:[CCDirector sharedDirector].openGLView hidden:YES]