0
我想通过使用Game Center来实现排名。如何在Game Center中实现排名
所以,我这样实现。
-(void)authenticateLocalPlayer
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *vc,NSError *err){
[self setLastError:err];
if ([CCDirector sharedDirector].isPaused){
[[CCDirector sharedDirector] resume];
}
if (localPlayer.authenticated){
_gameCenterFeaturesEnabled = YES;
// get localplayer's score.
GKLeaderboard *board = [[GKLeaderboard alloc] init];
// make a query
board.timeScope = GKLeaderboardTimeScopeAllTime;
// I want to get all player's score.
board.playerScope = GKLeaderboardTimeScopeToday;
// set my game category.
board.category = @"com.nobinobiru.shooting";
// I want to show top 3 score data.
board.range = NSMakeRange(1, 3);
[board loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
NSString *s = [NSString stringWithFormat:@"%lld",board.localPlayerScore.value];
[ud setObject:[NSString stringWithFormat:@"%@",s] forKey:@"bestScore"];
if (scores){
// I want to 3 items but it returned only 1 item.
NSLog(@"score is %@",scores);
}
}];
}else if (vc){
[[CCDirector sharedDirector] pause];
[self presentViewController:vc];
}
};
}
然后,我创建了3个沙箱的用户帐户,我测试了它。 但它始终只显示当前用户的最佳分数。
我想显示3个沙箱的数据。
我不知道为什么会这样。 我的代码在非沙箱环境中运行良好? 你有什么想法吗?
在此先感谢。