ターンベースのゲームに「クイックマッチ」モードが必要です。このモードでは、プレーヤーが最初に利用可能になったプレーヤーと自動的に一致します。独自のカスタム UI を使用しています。これまでの私のコードは次のようになります。
- (void)quickMatch {
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.playersToInvite = nil;
[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error) {
NSLog(@"MATCH: %@ %@ %@ %d",error,match,match.matchID,(int)match.status);
}];
これにより、一致が正常に作成されますが、一致の 2 番目の参加者にはnull
ID ( playerID:(null) status:Matching
) があります。
別の Game Center ID を使用して、この同じコードを別のインスタンスで実行すると、2 人のユーザーが互いに照合されると思いましたが、それは正しくないようです。関数を呼び出すたびにGKTurnBasedMatch loadMatchesWithCompletionHandler
、有効な参加者 (ローカル プレイヤー) が 1 人だけの同じ試合を取得し続けます。
この質問はiOS Development: How do I auto matchplayer in Game Center?に似ているようです。これは、設定request.playersToInvite = nil;
が自動マッチングを達成する必要があることを示していますが、これは私にとってはうまくいかないようです。
Game Center でこれらのプレイヤーを自動的にマッチングさせるにはどうすればよいですか?