从后台返回时,cocos2d动画停止



我有一个适用于iPhone的cocos2d 3.0项目的问题,该项目中的动画基本上在应用程序发送到后台时停止,在重新启动应用程序时不会重新启动。

整个Xcode项目完全是从我的另一个没有出现这个错误的项目中复制的,我所做的唯一主要的事情就是集成了一些广告网络(Chartboost和PlayHaven),但我已经注释掉了所有的广告代码,以测试这是否是原因,但没有效果。

正在运行的(旧的)项目以60 FPS的速度运行(通过状态为cocos2d: animation started with frame interval: 60.00的控制台条目观察),发送到后台时降至4 FPS(标准cocos2d行为),然后再次启动时以60 FPS重新启动。我的项目在以4 FPS重新启动时遇到了问题,但即使这样也是错误的——根本没有动画。

我尝试在applicationDidBecomeActive:中添加以下代码

[[CCDirector sharedDirector] setAnimationInterval:1.0/60];
[[CCDirector sharedDirector] startAnimation];

这使得控制台在重新启动时的日志显示为60 FPS,而不是4,但它仍然对动画没有实际影响——它仍然只是停止了。

问题似乎是我的应用程序委托中存在applicationDidBecomeActive方法——如果该方法中包含任何内容,将阻止cocos2d正确重新启动动画。

解决方案是在方法内部添加对超类的调用,如下所示:
[super applicationDidBecomeActive:application];

我在这个方法中有Chartboost代码,这就是为什么它出现在这个项目中,而不是我以前的(正在工作的)项目中——当我测试广告集成是否是原因时,我只是注释了Chartboost的代码,而不是整个方法。

最新更新