2013-12-16 39 views
1

我遇到了非常棘手的问题。在我目前工作的Cocos2d-x游戏中(它的主要部分是由另一个开发人员编写的,我刚刚完成它,现在它应该只在iOS上工作,所以我不关心所有Android相关的东西)我需要使用UIViewController。我目前它并关闭在一个非常常用的方法:cocos2dx解雇UIViewController时OpenGL错误0x0506

存在:

SDMoreAppsViewController *vc = [[SDMoreAppsViewController new] autorelease]; 
[viewController presentViewController:vc animated:NO completion:nil];// viewController is UIWindow root view controller 

解雇:

UIViewController *controller = self.presentingViewController; 
[controller dismissViewControllerAnimated:NO completion:nil]; 

一旦视图控制器已成功解除我在控制台中看到消息告诉我opengl error 0x0506已经出现。该消息从EAGLViewswapBuffersCCSpritedraw的方法打印。随着这个消息,我的整个场景变得没有反应。点击按钮不会产生任何结果。

我已经尝试了很多东西。我尝试推动我的视图控制器,并添加它作为一个孩子而不是呈现,但它甚至没有显示视图控制器(viewWillAppear方法不会被调用),我也尝试将其视图作为子视图添加到我的应用程序的窗口,但也带来了很多不同的错误。

我使用了cocos2d-x版本的cocos2d-2.1rc0-X-2.1.3。

以前有人解决过这样的问题吗?有什么建议么?

回答

5

presentViewController之前,暂停渲染:

CCDirector::sharedDirector()->pause(); 
CCDirector::sharedDirector()->stopAnimation(); 

呼叫恢复和startAnimation在完成块

+0

为我工作,谢谢! –