2013-02-22 103 views
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个沙箱的数据。

我不知道为什么会这样。 我的代码在非沙箱环境中运行良好? 你有什么想法吗?

在此先感谢。

回答

0

全部。 它在6小时后完美运作...

我认为它发生的原因是我创建的游戏中心帐户没有立即反映出来。