0

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 つのサンドボックスのデータを表示したい。

どうしてそんなことになったのかわからない。私のコードはサンドボックス環境でなくてもうまく動作しますか? 何か考えはありますか?

前もって感謝します。

4

1 に答える 1

0

全て。それは6時間後に完全に機能します...

作ったゲームセンターのアカウントがすぐに反映されなかったことが原因だと思います。

于 2013-02-24T08:16:05.303 に答える