0

ゲームセンター頑張ってます。数え切れないほど多くのコードをテストしました。スコアを自動的に送信する方法を知りたいのですが、ここに私が使用したいくつかのコードがありますが、これが役立つかどうかはわかりません

-(IBAction)showleaderboard:(id)sender{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController   alloc]init];
if (leaderboardController !=NULL) {
    leaderboardController.category = self.currentLeaderboard;
    leaderboardController.timeScope = GKLeaderboardTimeScopeAllTime;
    leaderboardController.leaderboardDelegate = self;
    [self presentModalViewController:leaderboardController animated:YES];
}

}
-(void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController{
[self dismissModalViewControllerAnimated:YES];
[viewController release];

}


-(IBAction)showAchivementLeaderboard:(id)sender{
GKAchievementViewController *achivements = [[GKAchievementViewController alloc]init];
if (achivements !=NULL) {
    achivements.achievementDelegate = self;
    [self presentModalViewController:achivements animated:YES];
}
}
-(void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController{
[self dismissModalViewControllerAnimated:YES];
[viewController release];

}

self.currentLeaderboard= kEasyLeaderboardID;
if ([gameCenterManager isGameCenterAvailible]) {
   self.gameCenterManager= [[[GameCenterManager alloc] init] autorelease];
    [self.gameCenterManager setDelegate:self];
    [self.gameCenterManager authenticateLocalUser];
}else{

    UIAlertView *openURLAlert = [[ UIAlertView alloc] initWithTitle:@"Game Center turned    off" message:@"You are not connected to game center." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [openURLAlert show];
    [openURLAlert release];
}
4

1 に答える 1

1

スコアを報告するには、次のように GKScore を使用する必要があります。

GKScore *scoreReporter = [[GKScore alloc] initWithCategory:self.gameCategory.leaderboardString];
scoreReporter.value = score;

[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
    if (error != nil) {

        [[KYTGlobals instance] storeScore:score forCategory:self.gameCategory.leaderboardString];

        }
 }];

上記のコードは、スコアを報告するカテゴリの Game Center で既に設定した識別子を使用して、GKScore オブジェクトを割り当てて初期化します。スコアの値を更新してから reportScoreWithCompletionHandler を使用し、スコアをアーカイブして後でレポートできるようにエラーをテストします。

于 2012-07-27T08:03:30.607 に答える