注意:任何可以帮助我正确解决此问题的人都将获得100 分赏金!
在我的应用程序中,我将 UIKit 和 Cocos2D 混合在一起,我使用 addSubview 和 removeFromSuperview 调用做了一些简单的自定义视图动画。我最近需要在我的应用程序中添加另一个 CCScene,以摆脱 Cocos2D 可以轻松处理的一些复杂的 UIKit 代码。所以我的应用程序中有一个基本视图,它是一个 UIViewController,上面有一些按钮。在这些按钮的后面是一个 CCGLView,Cocos2D 会做任何事情。这很好用。然后当我想去我的第二个视图控制器(让我们称之为我的游戏视图),在我完成我的视图动画之后,viewdidload 被调用(那是我的导演初始化用于第二个 CCScene 的地方)并且要么什么都没有发生,要么我在控制台中收到如下错误。现在在我的原始项目中,我得到了以下错误,在这个示例项目中没有任何反应。这些是错误:
OpenGL error 0x0501 in DrawSolidPolygon 104
OpenGL error 0x0502 in DrawSolidPolygon 104
OpenGL error 0x0501 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0502 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0502 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 556
OpenGL error 0x0501 in -[CCParticleSystemQuad postStep] 411
OpenGL error 0x0506 in -[CCSprite draw] 532
OpenGL error 0x0502 in -[CCParticleSystemQuad draw] 434
OpenGL error 0x0502 in -[CCSprite draw] 532
OpenGL error 0x0502 in -[CCSprite draw] 532
现在,当我在原始项目中有一个场景时,不会发生这种情况,只是现在我使用了 2 个 CCScenes。因此,示例项目中的代码几乎是我原始项目的副本,因此其中的任何错误很可能会导致我在这里解决手头的问题,并希望摆脱那些 OpenGL 错误。
经过几个小时的测试和收集信息,我的问题似乎类似于:iOS and multiple OpenGL views。我也看过这个链接: http: //gamesfromwithin.com/using-multiple-opengl-views-and-uikit。然而,这两个链接对我来说都没有任何意义,因为我不知道如何将它与 Cocos2D 联系起来。我认为这整个问题是当前版本的 Cocos2D 的一个限制,但是如果有人可以下载我的项目并以某种方式将过去两个链接的修复应用到我的项目并完全修复它,那就太好了,并且可以解决我的所有问题!
现在我项目中的 Cocos2D 版本是 2.0 版本可以下载的最新版本。如果有人愿意下载该项目并查看我做错了什么,我认为这将为我和其他遇到与我类似的问题的人解决问题。
下面的链接是我的问题示例项目的下载链接: http ://www.gogofile.com/Default.aspx?p=sc&ID=634818635814123750_4340
截至 2012 年 9 月 3 日更新,我目前正在考虑联系 @riq,他是 Cocos2D for iOS 的主要创建者。但是在我这样做之前,每个人都确定没有办法只拥有一个 CCGLView,我可以将它放在任何 UIViewController 中,因为从技术上讲,我不会使用两个视图,它只是控制器之间的一个共享视图。这种方式可行吗?