2011-08-03 55 views
2

我想在其他玩家的得分高的情況下顯示玩家的得分。換句話說,我想創建一個列表,顯示與競爭對手相比,玩家所處的位置。檢索遊戲中心得分與玩家的得分相近/接近

列表可能是這個樣子:

1:100萬

...

436:125285

437:124132(你的分數)

438th:120,998

439:119212

...

1012次:1433

這個例子顯示了全球頂部和底部的分數,以及分數週邊玩家的個人最好成績。

有什麼方法可以使用GameKit檢索這樣的列表嗎?

編輯/更新:我稍微改寫了這個問題,並將其發佈到蘋果開發者論壇here

回答

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 
    } 
}