2012-04-13 4 views
0

Я работаю над игровым центром. Я проверил столько кодов, что потерял счет. Я хотел бы знать, как автоматически высылает счет, а вот некоторые коды, которые я использовал, но я не уверен, если это поможетИгровой центр? Xcode

-(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]; 
} 

ответ

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]; 

     } 
}]; 

Вышеприведенный код выделяет и inits объекта GKScore, используя идентификатор, который вы уже создали в игровом центре для категории, которую вы хотите сообщить оценки. Вы обновляете значение для оценки, а затем используете reportScoreWithCompletionHandler, убедившись, что вы проверяете ошибку, чтобы вы могли архивировать счет и сообщить об этом позже.

Смежные вопросы