我对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,但它仍然没有对动画产生实际影响 - 它仍然只是停止了。
答案 0 :(得分:4)
问题似乎是我的app委托中存在applicationDidBecomeActive
方法 - 使用其中任何内容的方法将阻止cocos2d正确地重新启动动画。
解决方法是 - 在你的方法中 - 添加一个对超类的调用,如下所示:
[super applicationDidBecomeActive:application];
我在这个方法中有了Chartboost代码,这就是为什么它存在于这个项目中而不是我的旧版(工作版) - 当我测试看广告集成是否是原因时,我只是注释掉了Chartboost代码而不是整个方法。