Получить результаты Game Center, похожие / близкие к оценке игрока - PullRequest
2 голосов
/ 04 августа 2011

Я хотел бы показать высокий балл игрока в контексте с высокими баллами других игроков. Другими словами, я хочу создать список, который показывает, где находится игрок по сравнению с конкурентами.

Список может выглядеть примерно так:

1-е: 1 000 000

...

436th: 125,285

437th: 124,132 (ваш счет)

438th: 120,998

439th: 119,212

...

1012th: 1,433

В этом примере показаны общие верхние и нижние оценки, а также оценки, близкие к личным лучшим показателям игрока.

Есть ли способ получить такой список с помощью GameKit?

РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Я немного перефразировал этот вопрос и разместил его на форумах разработчиков Apple здесь .

1 Ответ

5 голосов
/ 16 августа 2011

Что ж, AFAIK нет такого способа сделать это в одном запросе, но GC возвращает ваш собственный счет в каждом запросе на результаты, поэтому вы можете сначала запросить любую (например, первую) строку в таблице лидеров, определить свою собственную позицию, а затем создать новый запрос с позициями от: your_own-требуемый_рейдж до: your_own + желаемый_рейдж.

_leaderboard.category    = kLeaderboardID;
_leaderboard.timeScope   = GKLeaderboardTimeScopeAllTime;
_leaderboard.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
_leaderboard.range       = NSMakeRange(1, 1);
[_leaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error){

  //processing, checking errors, etc
  _leaderboard.range = NSMakeRange([_leaderboard.localPlayerScore rank] - 4, 8);
  [_leaderboard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error){
    // Here are your results
  }
}
...