Iphone Uikit(OpenGL)版本中的COCOS2D2.0

Iphone Uikit(OpenGL)版本中的COCOS2D2.0,iphone,ios,objective-c,opengl-es,cocos2d-iphone,Iphone,Ios,Objective C,Opengl Es,Cocos2d Iphone,我有一个大问题,我找不到任何解决办法,所以这就是为什么我要寻求帮助 我正在从事一个包含多个小应用程序的项目,其中大多数是在UIKit中制作的,大多数是在openGL ES 1.0/1.1(不确定)中制作的,并有一些辅助功能的帮助。我必须开发一些需要碰撞检测和动画的游戏,所以我认为cocos2d就可以了 我成功地导入了cocos2d 2.0并使其功能化,从菜单中选择游戏将启动director和cocos2d场景,当我想要退出它时,我调用[_DirectorEnd],它将返回到菜单,该菜单也是在op

我有一个大问题,我找不到任何解决办法,所以这就是为什么我要寻求帮助

我正在从事一个包含多个小应用程序的项目,其中大多数是在UIKit中制作的,大多数是在openGL ES 1.0/1.1(不确定)中制作的,并有一些辅助功能的帮助。我必须开发一些需要碰撞检测和动画的游戏,所以我认为cocos2d就可以了

我成功地导入了cocos2d 2.0并使其功能化,从菜单中选择游戏将启动director和cocos2d场景,当我想要退出它时,我调用[_DirectorEnd],它将返回到菜单,该菜单也是在openGL ES中创建的

问题是,有时,而且大多数情况下是随机发生的,我在控制器结束调用时收到一个0x500 GL错误,导致菜单变为白色,但仍然响应触摸

这是我试图解决这个问题的第三天了。以下是我尝试过的: -由于COCOS2D2.0使用OpenGL ES 2.0,而我的菜单是GL ES 1.0,我认为这两者之间存在冲突,所以我使用了cocos2d 1.x,但这会带来更多问题,而且应该不会冲突,因为当cocos2d场景出现在屏幕上时,菜单的glview会暂停

  • 每次启动cocos2d时启用cocos2d_调试时,我也会遇到这些错误

    cocos2d:曲面大小:0x0

    cocos2d:无法生成完整的帧缓冲区对象0x0

我真的在网上尽了我所能

下面是我用来运行/关闭cocos2d的代码

// start cocos2d
    _director = (CCDirectorIOS*)[CCDirector sharedDirector];
    CCGLView *glView = [CCGLView viewWithFrame:CGRectMake(0, 0, 320, 480)
                                     pixelFormat:kEAGLColorFormatRGBA8
                                     depthFormat:0 /* GL_DEPTH_COMPONENT24_OES */               
                              preserveBackbuffer:NO                                             
                                      sharegroup:nil                                                
                                   multiSampling:NO                                         
                                 numberOfSamples:0
   [_director setView:glView];
   [_director setDelegate:self];
   [[_delegate glViewAccess] addSubview:glView]; // the glviewacces is the app menu select view


//stop cocos2d
   [_director end];

   // this call restarts the app menu select view update and draw functions and 
   // releases the current instance of the object used to start cocos2d, 
   // releasing the cocos2d scene as well
   [_delegate unloadApplication]; 

首先,不要混合使用OpenGL v1.1和2.0代码。小猫会死的

其次,不要调用
[director end]
——实际上没有必要每次都完全关闭cocos2d,只需运行
stopAnimation
startAnimation
即可挂起并恢复cocos2d。调用端并没有经过很好的测试,如果您这样做,可能会出现许多问题


如果这还不能解决问题,请发布代码,说明如何在应用程序中设置和关闭cocos2d以获得更多帮助。

我也尝试过该解决方案,但这并不能解除cocos2d场景的锁定,并在只有一个场景时使用
\u director popsecene
结束导演。我发布了我现在正在使用的代码,在对主Post的编辑中,只需切换到空场景即可。还比较了一个常规的cocos2d appdelegate,看起来缺少了一些通常在cocos2d init中使用的方法。