2017-01-03 3 views
16

Я реализовал функции Game Center, такие как достижения и списки лидеров, и теперь я работаю над проблемами. У меня создалось впечатление, что мне не нужно было добавлять дополнительный код - если бы у меня были достижения или рейтинги, игроки могли бы отправлять вызовы своим друзьям. Но теперь, в iOS10, у вас больше нет возможности добавлять игроков в качестве друзей - проблемы решаются через iMessages. Проблема в том, что я не вижу эту функцию в любом месте экрана GKViewController. Если вы выберете оценку достижения/leaaderboard, вы можете нажать «Challenge Friends», но она предлагает только тех игроков, которые у вас уже есть в списке друзей, а не в вашем списке контактов. Apple также отказалась от GKChallengesViewController, поэтому я не уверен, где искать, как это сделать.Игровой центр Проблемы в iOS 10

Кто-нибудь знает, как добавить функцию iMessage Challenges в Game Center в iOS 10?

Обновление: Я видел, что эта функция живет в GKMatchmakerViewController, но это похоже на вещи многопользовательского типа. Я все еще не уверен, как использовать это, чтобы просто отправлять вызовы.

+0

все рабочие функции вы можете найти здесь. https://developer.apple.com/reference/gamekit – John

ответ

0

От Apple Docs:

эмитенте вызов не отображается пользовательский интерфейс для игрока, выдавшего вызов; это код, необходимый для реализации.

Есть также несколько примеров о том, как оформить проблемы и как найти игроков, вы можете пригласить, например:

- (void) challengePlayersToCompleteAchievement: (GKAchievement*) achievement 
{ 
    [achievement selectChallengeablePlayers:[GKLocalPlayer localPlayer].friends withCompletionHandler:^(NSArray *challengeablePlayerI, NSError *error) { 
     if (challengeablePlayers) 
     { 
      [self presentChallengeWithPreselectedPlayers: challengeablePlayers]; 
     } 
    }]; 
} 

... или:

- (void) challengeLesserMortalsForScore: (int64_t) playerScore inLeaderboard: (NSString*) leaderboard 
{ 
    GKLeaderboard *query = [[GKLeaderboard alloc] init]; 
    query.leaderboardIdentifier = leaderboard; 
    query.playerScope = GKLeaderboardPlayerScopeFriendsOnly; 
    query.range = NSMakeRange(1,100); 
    [query loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) { 
     NSPredicate *filter = [NSPredicate predicateWithFormat:@"value < %qi",playerScore]; 
     NSArray *lesserScores = [scores filteredArrayUsingPredicate:filter]; 
     [self presentChallengeWithPreselectedScores: lesserScores]; 
    }]; 
} 

К По его мнению, вы по-прежнему можете приглашать игроков, которые уже являются частью игрового центра, т.е. никаких произвольных «контактов» из списка контактов (что имеет смысл), но это только предположение.

+0

Спасибо за сообщение. Я был в предположении из видео WWDC 2016, что проблемы могут быть отправлены через ваш список контактов, а не список друзей в Game Center, который больше нельзя добавлять. – claassenApps

Смежные вопросы