【问题标题】:Unlock Achievement - GameCenter iPhone解锁成就 - GameCenter iPhone
【发布时间】:2010-12-18 15:10:52
【问题描述】:

我正在尝试解锁我正在为 iPhone 制作的游戏中的一项成就,但相当不成功。

从演示 Game Center 代码的 Apple 自己的 GKTapper 项目示例中,我已将 GameCenterManager.h 和 .m 以及 AppSpecificValues.h 文件复制到我的项目中。我已成功加载成就和排行榜供查看。

但是我不知道如何真正解锁成就。有人能指出如何使用这个或没有 GameCenterManager 我如何解锁成就吗?

谢谢。

【问题讨论】:

    标签: iphone gamekit game-center achievements unlock


    【解决方案1】:
        - (void) 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).
                      }
                 }];
        }
    }
    

    像这样调用这个方法:

    [self reportAchievementIdentifier:indentifier percentComplete:percent];
    

    如果您只想解锁成就,请调用:

    [self reportAchievementIdentifier:indentifier percentComplete:100.0];
    

    您可以使用浮点数来计算成就的百分比,如果用户达到100,则成就被解锁。

    你也可以这样做:

    [self reportAchievementIdentifier:indentifier percentComplete:((actualpoints/neededPoints)*100.0)];
    

    neededPoints 表示解锁此成就所需的积分。例如: 实际点数 = 300; 需要积分 = 600;

    计算:300/600 = 0.5 * 100 = 50%

    【讨论】:

      【解决方案2】:

      顺便说一句,如果您设置 percentComplete=100,“已完成”属性并不总是设置为 YES,至少不在同一个会话中。我花了一些时间调试为什么我的游戏会多次授予成就,即使将百分比设置为 100。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        相关资源
        最近更新 更多