Как завершить 2-х игроков, основанный на пошаговом матче Game Center, когда игрок выходит из транша

Я искал везде и не нашел ответа на эту проблему:

У меня есть игра для 2 игроков, пошаговая, через Game Center.

После того, как игрок сделал свой ход, у него есть возможность в Game Center выйти из игры. В моем случае это автоматически означает, что игра завершилась, а другой игрок выиграл. Тем не менее, я не могу найти метод Game Center, чтобы это произошло.

Я не могу использовать endMatchInTurnWithMatchData, потому что это не этот ход игроков.

И если я попытаюсь использовать endMatchInTurnWithMatchData, когда настанет ход другого игрока, это также невозможно, потому что нет другого игрока, которому нужно было бы отправить endMatchInTurnWithMatchData (потому что другой игрок уже вышел).

Есть ли кто-нибудь, кто знает решение этой проблемы?

Спасибо мартин

2 ответа

Решение

Вы должны реализовать turnBasedMatchmakerViewController:playerQuitForMatch: метод GKTurnBasedMatchmakerViewControllerDelegate, Вот пример кода:

-(void)turnBasedMatchmakerViewController: (GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match {
    NSUInteger currentIndex = [match.participants indexOfObject:match.currentParticipant];
    GKTurnBasedParticipant *next = [match.participants objectAtIndex:(currentIndex + 1)%[match.participants count]];
    [match participantQuitInTurnWithOutcome:GKTurnBasedMatchOutcomeQuit nextParticipants:@[next] turnTimeout:MAXFLOAT matchData:match.matchData completionHandler:nil];
    [next setMatchOutcome:GKTurnBasedMatchOutcomeWon];
    [match endMatchInTurnWithMatchData:match.matchData completionHandler:nil];
}

Я боролся с той же проблемой. То, что в итоге помогло мне, - это установить себя следующим участником при вызове memberQuitInTurnWithOutcome.

Надеюсь, поможет!

Другие вопросы по тегам