2

私はしばらくGameKitで作業しています。ほとんどすべてが正常に動作します。session:peer:didChangeState:再開後にメソッドが呼び出されないという大きな問題があります。

Apple の例である GKRocket では、アプリが一時停止 (willTerminate) し、復帰時にセットアップ (willResume) すると、セッションは破棄されます。私のアプリでは、セッションを維持するといいでしょう。

私が見ることができるログでsession:peer:didChangeState:は、アプリが一時停止したときに GKPeerStateUnavailable 状態で呼び出されますが、GKPeerStateAvailable で呼び出しを再開した後は表示されません。セッションが可能です。しかし、新しいクライアントでさえデバイスを見つけることができません。

SessionModes サーバー/クライアントを使用しています。

よろしくお願いします。

4

1 に答える 1

0

少し前にセッションで遊んでいましたが、いくつか提案があります...

・レジューム後、スリープ状態のデバイスからアウェイ状態のデバイスにパックを送信しようとするとどうなりますか? 通じますか?

- GKPeerStateUnavailable / available が必要ですか? 私の経験から、使用する必要があるのは applicationDidBecomeActive と applicationWillResignActive メソッドだけです。スリープ状態になると GAME_PAUSED を他のデバイスに送信し、起動すると GAME_UNPAUSED を送信します。ユーザーがアプリをスリープ状態にしてから閉じると、残念ながら、他のプレイヤーは永遠にそこに座ったままになります (メインメニューを終了するオプションを彼に与えることができます)。このアプローチは (承認に関して) Apple で機能します - 2 つのアプリでテストされています。よろしく!

于 2011-11-15T12:41:34.417 に答える