尝试测试排行榜。我这样做:
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardRequest.category = self.gameData.leaderboardId;
leaderboardRequest.range = NSMakeRange(1,10);
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// Handle the error.
}
if (scores != nil)
{
for (GKScore *score in scores) {
NSLog(@"score retrieved: %lld", score.value);
}
}
}];
}
我在用户A的一台设备上玩游戏,得分为137.当我查询排行榜时,我得到了137分。我在另一台设备上玩了用户B,得分为243,当我查询排行榜时,我只得到了243分。
那么为什么我只能从登录的用户那里获得分数?显然,我需要每个人的分数才能创建自定义排行榜。据我了解,GKLeaderboardPlayerScopeGlobal应该检索所有分数,而不仅仅是本地用户的分数。