我发现了一个导致cocos2d视图停止呈现其内容的错误。可以使用Jpsarda帖子中关于UIKit和cocos2d-x之间集成的示例项目来重现该错误。 该网站的链接是:http://jpsarda.tumblr.com/post/24983791554/mixing-cocos2d-x-uikit,该项目的链接是:http://dl.dropbox.com/u/12856650/Cocos2dxOnUikit.zip。
要重现该错误,通过反复按“Cocos2d-x GO!”,在uikit视图和cocos2d视图之间触发多次就足够了。第一个视图上的按钮,然后是第二个视图上的“关闭”按钮。我还制作了一个视频,演示如何重现错误:http://youtu.be/EIvf-Ao6u5I。该错误仅发生在真实设备上而不是模拟器上。由于这个bug,很难创建允许用户在cocos2d视图和uikit视图之间频繁切换的应用程序,例如我正在工作的视图。目前我无法理解根本原因,我还没有在论坛上收到回复。是否有人对可能的原因有任何想法/直觉/建议?
答案 0 :(得分:0)
我找到了原因。永远不会发布EAGLView,这会导致资源泄漏。要解决JPSARDA示例中的错误,添加以下行就足够了:
[[EAGLView sharedEGLView] release];
在CCEGELView :: release方法的最后。这将解决JPSARDA(和我的应用程序:D)问题,但很可能这个解决方案不能用于以不同方式处理EAGLView生命周期的项目