1

マルチプレイヤーゲームがオートマッチによって開始されたのか、友達を招待したのかを特定するにはどうすればよいですか?

試合開始時にこのメソッドが呼び出されました。

- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)theMatch {

    [presentingViewController dismissModalViewControllerAnimated:YES];
    self.match = theMatch;
    match.delegate = self;
    if (!matchStarted && match.expectedPlayerCount == 0) {
        NSLog(@"Ready to start match!");
        [self lookupPlayers];
    }
}

基本的に私はこれが欲しいです(このリンクをチェックしてください)-マルチプレイヤーゲームでデータを同期する方法(game-centerios)

4

1 に答える 1

2

ローカルプレイヤーのplayerIDが試合の参加者リストに含まれているかどうかを確認します。招待された場合や自動照合された場合は、リストに表示されないことがわかりました。まだ試合を受け入れていないからだと思います。

+ (BOOL) isLocalPlayerActiveParticipantInMatch:(GKTurnBasedMatch *)aMatch
{
    for (GKTurnBasedParticipant *participant in aMatch.participants)
    {
        if ([participant.playerID isEqualToString:[GKLocalPlayer localPlayer].playerID])
            return YES;
    }

    return NO;
}

支払人が試合をすることにした場合、私はこれを試合と呼びます。

GKTurnBasedMatch acceptInviteWithCompletionHandler

彼らが辞退した場合、私はこれを試合と呼びます:

GKTurnBasedMatch declineInviteWithCompletionHandler
于 2012-12-19T00:22:18.377 に答える