解锁成就 - GameCenter iPhone

时间:2010-12-18 15:10:52

标签: iphone gamekit game-center achievements unlock

我正试图解开我为iPhone制作的游戏中的成就,但却没有成功。

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

然而,我无法解决或正确解决成就问题。有人可以指出如何使用这个或不使用GameCenterManager如何解锁成就?

感谢。

2 个答案:

答案 0 :(得分: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)];

neededPoints表示解锁此成就所需的积分。例如: actualPoints = 300; neededPoints = 600;

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

答案 1 :(得分:0)

顺便说一句,如果你设置percentComplete = 100,那么“completed”属性并不总是设置为YES,至少不在同一个会话中。我花了一段时间调试为什么即使将percentComplete设置为100,我的游戏也会多次获得成就。