2

私はGame-kitを実装しているcocos2dゲームを使用しています。私のゲームはマルチプレイヤーオプションをサポートしています。実際に与えられた例のようにRaywenderlichリンク。私はゲームキットのGKTurnBasedMultiplayerクラスです。しかし、最初のプレーヤーがゲームセンターに接続し、「今すぐプレイ」のオプションを選択すると、別のプレーヤーのために自動化されるという問題が発生しました。しかし問題は、それが直接接続して試合を開始し、他のプレイヤーを待たないことです。使ってます

[[GCTurnBasedMatchHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:4 viewController:viewConroller];

他のプレイヤーと接続してプレイするためですが、試合を直接接続します。

他のプレイヤーを待ちたいです。それが問題です。GCTurnBasedMatchHelperクラスも使用しています。

4

1 に答える 1

2

これは、GameKitAPIの意図された機能です。ターンベースの試合では、試合データは最初のターンで提出されます。自動試合の場合、最初に提出されたターンのにGame Centerが対戦相手を見つけるまで、試合データは未定のプレーヤーです。

この背後にある論理は、ターン制の試合を伴う「それは常にあなたの番です」という教義です。最初のターンを送信する前にGameCenterがプレーヤーとあなたを一致させた場合、その他のプレーヤーは、自分のターンではない試合に招待されます。これは非常に望ましくありません。

Appleのドキュメントにあるように、一致する参加者のplayerID属性がnilに戻る状況を考慮し、それに応じてブロックコードで処理する必要があります。対戦相手は、あなたが自分のターンを受け取るまでゼロになります(これは、作成者の最初のターンの後に自然に発生します)。それでも混乱する場合は、ターンベースのゲームセンターAPIを参照してください。

于 2012-10-11T04:21:33.433 に答える