私はターン ベースのゲームのマルチプレイヤー部分を書いています。ゲーム センターを使用して試合を管理しています。GKTurnBasedMatch で新しいゲームを開始しても、すぐに招待通知が他のプレイヤーに送信されません。通知を送信するには、移動して最初のターンを終了する必要があります... この動作を変更できますか? 他のプレイヤーが私の招待を受け入れた場合にのみ、最初のターンを行いたいです。
2 に答える
2
これを行うように見える 1 つの方法は、NSData に値 (int など) を追加することです。ゲームを開始し、ユーザーに何も表示せずにすぐにターンを終了します。ターン数を増やすだけです。他のプレイヤーが受け入れるとき、ターン番号が2番目のターンである場合、ターン番号を再び増やして、そのターンを終了します。最初のプレーヤーがターンバックを受け取るまで、このエンド インクリメント エンド パターンを続けます。その後、すべてのプレーヤーが招待を受け入れて正式にゲームに参加した状態で、通常のプレイを開始します。
開始する準備ができているプレーヤーのプレイ時間が大幅に遅れる可能性があるため、これを行うことはお勧めしません。彼らは最終的にあなたのゲームからそれを期待するかもしれませんが、標準的なパターンでは、プレーヤーがプレイを開始するまでの明らかな待ち時間が短くなります。
于 2013-04-27T00:53:53.563 に答える
-1
status
クラスの他の参加者のプロパティを確認できますGKTurnBasedParticipant
。ステータスが引き続き の場合はGKTurnBasedParticipantStatusInvited
、ゲーム コントローラを開くことを禁止し、アラートを表示します。
于 2013-04-09T14:14:03.303 に答える