0

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

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

但是,我无法解决或正确了解如何实际解锁成就。有人能指出如何使用这个或没有 GameCenterManager 我如何解锁成就吗?

谢谢。

4

2 回答 2

2
    - (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)];

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

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

于 2010-12-18T17:56:11.160 回答
0

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

于 2011-04-19T06:17:25.480 回答