0

独自のカスタム ユーザー インターフェイスを使用して、ランダムなマッチメイキングをプログラムで実装しようとしています。

私はちょっと立ち往生しています..

アップルのサイトにあるこのコードを使用して、問題なく一致を作成できます

- (void)findProgrammaticMatch
{
    GKMatchRequest *request = [[GKMatchRequest alloc] init];

    request.minPlayers = 2;
    request.maxPlayers = 2;


    [GKTurnBasedMatch findMatchForRequest: request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
     {
         if(error)
             NSLog(@"ERROR");
         if (match) {

             NSLog(@"STARTING MATCH");
         }

     }];
}

そして、match.participants.count を実行すると、数字 2 が得られます...

ただし、1 人の参加者は私で、もう 1 人は null です

テストのために 2 つのサンドボックス アカウントを作成し、同じコードを他のゲーム センター アカウントで実行したところ、新しいゲームが作成されました..しかし、何らかの理由でそれらと一致しませんでした..何か不足していますか?

Googleで例を探していましたが、何も見つからないようです..誰かがどこかで例を見つけることができることを知っていれば、私は最も感謝しています

4

1 に答える 1

0

まあ、ターンベースのマッチメイキングで重要なポイントを逃しているかもしれません. ユーザーが既存のマッチに接続していない場合に自動マッチを開始すると、新しいゲームが開始され、ユーザーは最初のターンを取得します。彼が自分のターンを完了した後でのみ、他のユーザーはこのゲームに接続できます。したがって、2 人のプレーヤーの対戦を行う場合: 1 人のユーザーが新しいゲームを開始し、その時点でもう 1 人のユーザーが null であり、最初のユーザーが自分のターンを終了した後 (endTurnWithMatchData が呼び出された)、他のユーザーはこの既存のゲームに接続する必要があります。

これはドキュメンテーションではあまり明確ではありません (ゲームセンターのドキュメンテーションを軽蔑し、不明確で不完全です) が、sdk 6 の場合です。近い将来変更されると思います。

于 2013-02-22T12:13:47.203 に答える