我想在其他球员的高分中显示球员的高分。换句话说,我想创建一个列表,显示玩家与竞争对手相比的位置。
列表可能如下所示:
1st:1,000,000
...
436th:125,285
437th:124,132(你的分数)
438th:120,998
439th:119,212
...
1012th:1,433
此示例显示全球最高和最低分数,以及与玩家个人最佳分数相近的分数。
有没有办法使用GameKit检索这样的列表?
编辑/更新:我稍微改写了这个问题并将其发布到Apple开发人员论坛here。
答案 0 :(得分:5)
嗯,AFAIK在一个请求中没有这样的方法,但是GC会在每个分数请求中返回您自己的分数,因此您可以先在排行榜中请求任何(例如第一行),确定您自己的位置,然后创建位置从:your_own-desired_range到:your_own + desired_range。
的新请求_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
}
}