向GameCenter发送成就问题!

时间:2011-04-05 18:18:16

标签: iphone xcode ipod-touch gamekit game-center

好吧,我已经注册了排行榜和成就(仅用于测试目的)。我使用GameCenterManager.h / .m和AppScoreValue.h

我的排行榜正常工作,收到所有分数,按顺序排列,但不会给予玩家成就。

我想举例说明如何报告成就,我试过这个:

我的观点确实加载方法如下所示:

-(void)viewDidLoad{
   [GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) {
    if (error != nil)
    {
        NSLog(@"ACHIEVEMENTS WERE NOT LOADED");
    } else {
        NSLog(@"ACHIEVEMENTS WERE LOADED");
    }

    if (achievements != nil)
    {
        NSLog(@"THERE ARE ACHIVEMENTS");
    } else {
        NSLog(@"THERE ARE NO ACHIVEMENTS %@", achievements);
    }
}];

这是我的成就报告方法:

- (IBAction)reportAchievementIdentifier:(NSString*)identifier percentComplete:(float) percent {    
    GKAchievement *achievement = [[[GKAchievement alloc] initWithIdentifier: identifier] autorelease];
    if (achievement)
    {
        achievement.percentComplete = percent;
        [achievement reportAchievementWithCompletionHandler:^(NSError *error)
         {
             if (error != nil)
             {
                 // Retain the achievement object and try again later (not shown).
             }
         }];
    }

}

2 个答案:

答案 0 :(得分:1)

当您报告成就时,您可以调用以下内容:

[self reportAchievementIdentifier:@"com.yourapp.yourachievement" percentComplete:100.0];

(您希望将标识符替换为您用于Game Center标识符的任何内容。)

我建议从Apple查看this documentation。它包含有关如何在您的应用中使用成就的完整教程。

基本的想法是,您的应用会报告用户完成成就的百分比。请注意,成就并不总是立即传播。

答案 1 :(得分:1)

GKAchievement *achievement = 
    [[GKAchievement alloc] initWithIdentifier: identifier];
achievement.showsCompletionBanner = YES;

那就是它!