2013-02-26 55 views
4

我正在使用Cocos2D爲iOS編寫遊戲。我已經實現了一個暫停功能,允許用戶根據要求暫停菜單。當我收到一個applicationWillResignActive時,我還實現了一個完整的暫停(不定期主遊戲循環)。在applicationWillEnterForegroundapplicationDidBecomeActive我恢復主遊戲循環,但隨後將播放器放入暫停菜單,強制它們在準備就緒時恢復。除了一種情況之外,一切似乎都運作良好。當收到日曆事件警報(我認爲這是一個UIAlert)時,遊戲不會拋出暫停菜單或暫停遊戲。檢測UIAlert /通知

我的三個問題:我必須同時包括willEnterForegrounddidBecomeActive,或者對我的目的來說足夠好嗎?我必須安排接受UIAlerts的電話是什麼(如果這實際上是觸發我在上述情況下的錯誤),我應該如何處理?有什麼方法來模擬UIAlert,以便我可以測試/調試?

非常感謝。


編輯 -

的問題是在我的整體操控性的說事件。在蘋果的文檔中清楚地指出,使用willResignActive暫停遊戲(即拋出暫停菜單並停止遊戲循環),並使didEnterForeground恢復遊戲循環,但保持暫停菜單。通過這種方式處理事件,不需要安排接收UIAlerts或本地/遠程通知。

+0

我認爲這是'UIApplicationDelegate'中'applicationWillResignActive:'的恰當用法,雖然我並不積極,但文檔不是100%清晰的。它只是指出:「這可能發生在某些類型的臨時中斷(例如來電或SMS消息)或用戶退出應用程序並開始過渡到後臺狀態時。」 – 2013-02-26 21:56:35

+0

我同意,這非常含糊。此外,我不知道我是否應該設置觀察員接收本地/遠程通知或不......不清楚。 – Clev3r 2013-02-26 22:02:02

+1

你不需要一個觀察者,而是一個實現這個消息的UIApplicationDelegate(通常是AppDelegate類)。如果您不確定,只需實現所有委託消息並設置斷點或添加日誌記錄,以便知道何時收到哪些消息。 – LearnCocos2D 2013-02-26 22:07:42

回答

0

當你會得到一個日曆事件,你會得到一個applicationWillResignActive調用:,這是一個地方處理cocos2D暫停或任何你想在日曆事件接待處做的事情。如果calender事件被忽略,applicationDidBecomeActive將被調用。如果不被忽視,那麼你將不得不從你正在做的事情恢復。