Интерфейс пошагового подбора игроков Game Center позволяет пользователю создать матч с несколькими игроками и заполнить некоторые из этих мест приглашениями для друзей, а другие оставить для автоматического подбора.
Я создаю наш собственный интерфейс для создания внутриигровых матчей, который до сих пор работает нормально, за исключением случаев, когда речь идет о создании матча как с приглашенными, так и с автоматическими игроками.
В GKMatchmaker есть метод addPlayersToMatch, в котором, как я полагаю, вы можете добавлять игроков с автоматическим подбором игроков после того, как матч существует, но GKTurnBasedMatch не имеет эквивалентного метода.
Ниже приведен код, который я использую, и он отлично работает. Если кто-нибудь знает, как добавить количество игроков с автоматическим матчем, мы будем очень признательны!
- (GKMatchRequest *) buildMatchRequestWithFriends: (NSArray *) friendsList NumberOfPlayers: (NSInteger) numberOfPlayers
{
NSLog(@"TurnByTurnHelper.buildMatchRequestWithFriends");
GKMatchRequest *request = [[GKMatchRequest alloc] init];
NSArray *playersToInvite = [NSArray arrayWithArray:friendsList];
request.playersToInvite = playersToInvite;
request.defaultNumberOfPlayers = numberOfPlayers + 1;
return request;
}
- (void) requestMatchWithFriends:(NSArray *) friendsList NumberOfPlayers: (NSInteger) numberOfPlayers{
if (!_delegate)
{
NSLog(@"Error: Expected but did not find delegate");
return;
}
GKMatchRequest *request = [self buildMatchRequestWithFriends:friendsList NumberOfPlayers: numberOfPlayers];
[GKTurnBasedMatch findMatchForRequest: request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
{
if (match){
NSLog(@"findMatchForRequest: Success!");
// Add match to matches
} else {
NSLog(@"error: %@", error);
}
}];
}