2014-02-23 36 views
2

我有一個針對iPhone的cocos2d 3.0項目的問題,基本上動畫在應用程序發送到後臺時停止,並且在重新啓動應用程序時不會再次啓動。當從後臺返回時,cocos2d動畫停止

整個Xcode項目完全從我的另一個項目複製而來,並沒有出現這個錯誤,而我所做的唯一重要的事情是整合了幾個廣告網絡(Chartboost和PlayHaven) - 但我已經註釋掉了所有廣告代碼來測試這是否是原因並且沒有效果。

工作(較老的)項目以60 FPS運行(通過控制檯條目觀察到的狀態爲cocos2d: animation started with frame interval: 60.00),並在發送到後臺(標準cocos2d行爲)時降至4 FPS,然後再次啓動時以60 FPS重新啓動。這個項目我在4 FPS處遇到問題,但即使這樣也是錯誤的 - 根本沒有動畫。

我曾嘗試在applicationDidBecomeActive:

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

加入如下代碼,這使得控制檯日誌時重新啓動說60 FPS,而不是4,但它仍然有對動畫沒有實際效果 - 它仍然只是停止。

回答

4

問題似乎是我的應用程序委託中存在applicationDidBecomeActive方法 - 使用該方法中的任何內容都會阻止cocos2d正確重新啓動動畫。

解決的辦法是 - 你的方法內 - 添加一個調用父類,像這樣:
[super applicationDidBecomeActive:application];

我在這個方法Chartboost代碼,這就是爲什麼它存在於這個項目,但不是我的大(工作) - 當我測試以查看廣告整合是否是原因時,我僅評論了Chartboost代碼而不是整個方法。

相關問題