我有一个大问题,我找不到任何解决方案,所以这就是我寻求帮助的原因。
我正在开发一个包含多个小应用程序的项目,其中大部分是在 UIKit 中制作的,其中大部分是在一些辅助函数的帮助下在 openGL ES 1.0/1.1(不确定)中制作的。我必须开发一些需要碰撞检测和动画的游戏,所以我认为 cocos2d 就可以了。
我设法导入 cocos2d 2.0 并使其正常运行,从菜单中选择游戏将启动导演和 cocos2d 场景,当我想退出它时,我调用 [_director end] 并返回菜单,这也是在 openGL ES 中。
问题是,有时,它主要是随机发生的,我在导演结束调用时收到 0x500 GL 错误,导致菜单变成白色,但仍然响应触摸。
这是我尝试解决此问题的第三天。这是我尝试过的: - 由于 cocos2d 2.0 使用 open GL ES 2.0 而我的菜单是 GL ES 1.0,我认为这是它们之间的冲突,所以我使用了 cocos2d 1.x,但这带来了更多问题,而且它不应该发生冲突当 cocos2d 场景出现在屏幕上时,菜单的 glview 会暂停。
当我每次启动 cocos2d 时启用 cocos2d_debug 时,我也会收到这些错误。
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];