4

Cocos2D を使用して iOS 用のゲームを作成しています。ユーザーが要求に応じてメニューを一時停止できる一時停止機能を実装しました。また、applicationWillResignActive. オンapplicationWillEnterForegroundapplicationDidBecomeActiveして、メインのゲーム ループを再開しますが、プレーヤーを一時停止メニューにスローし、準備ができたら強制的に再開させます。1 つの状況を除いて、すべてがうまく機能しているようです。カレンダー イベント アラーム (UIAlert であると想定) を受信すると、ゲームは一時停止メニューを表示したり、ゲームを一時停止したりしません。

私の 3 つの質問: と の両方を含める必要がありwillEnterForegroundますdidBecomeActiveか、それとも 1 つだけで十分ですか? UIAlerts を受信するためにスケジュールする必要がある呼び出しは何ですか (それが実際に上記のケースでエラーをトリガーする場合)、それらをどのように処理する必要がありますか? テスト/デバッグできるように UIAlert をシミュレートする方法はありますか?

とても有難い。


編集 -

問題は、上記のイベントの全体的な処理にありました。Apple のドキュメントで明確に述べられているようにwillResignActive、ゲームを一時停止する (つまり、一時停止メニューを表示してゲーム ループを停止する) ために使用didEnterForegroundし、ゲーム ループを再開しますが、一時停止メニューは表示したままにします。この方法でイベントを処理することにより、UIAlerts またはローカル/リモート通知を受信するようにスケジュールする必要がなくなりました。

4

1 に答える 1

0

カレンダー イベントを取得するたびに applicationWillResignActive: の呼び出しが行われます。これは、cocos2D の一時停止またはカレンダー イベントの受信時に実行したいその他の処理を行う場所です。カレンダー イベントが無視された場合、applicationDidBecomeActive が呼び出されます。無視されない場合は、同じことから再開する必要があります。

于 2013-03-19T06:43:45.423 に答える