我想使用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个沙盒的数据。
我不知道为什么会这样。 我的代码在沙箱环境中运行良好? 你有什么主意吗?
提前致谢。
答案 0 :(得分:0)
全部。 它在6小时后完美运行......
我认为发生这种情况的原因是我创建的游戏中心帐户没有立即反映出来。