就 Apple 的游戏中心 apis 而言,我将如何请求和取回特定排行榜和 Timescope 的本地用户时间和排名?
a) 时间,例如12.3秒
b) 排名(与好友),例如12日
c) 排名(所有玩家)例如第123话
最佳答案
复制自 Game Center Programming Guide :
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal; // or GKLeaderboardPlayerScopeFriendsOnly
leaderboardRequest.timeScope = GKLeaderboardTimeScopeToday; // or GKLeaderboardTimeScopeWeek, GKLeaderboardTimeScopeAllTime
leaderboardRequest.identifier = @"Combined.LandMaps" // Name of the leaderboard
leaderboardRequest.range = NSMakeRange(1,10); // How many results to get
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// Handle the error.
}
if (scores != nil)
{
// Process the score information.
}
}];
}
要获取特定用户的信息:
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] initWithPlayerIDs: match.playerIDs];
在这两种情况下,用户的分数都存储在 localPlayerScore 中,所有分数都存储在分数中。
然而,排名可能有问题。您最多只能获得 100 分,因此如果排行榜非常大,则可能需要进行大量调用。 localPlayerScore 确实包含排名值,但这仅与当前分数列表相关。基本上,您必须遍历整个排行榜才能找到用户的位置。
关于ios - 如何从 Game Center 获取特定排行榜和时间范围的用户时间和排名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19485611/