我正在尝试解锁我为 iPhone 制作的游戏中的一项成就,但相当不成功。
从演示 Game Center 代码的 Apple 自己的 GKTapper 项目示例中,我已将 GameCenterManager.h 和 .m 以及 AppSpecificValues.h 文件复制到我的项目中。我已成功加载成就和排行榜以供查看。
但是,我无法解决或正确了解如何实际解锁成就。有人能指出如何使用这个或没有 GameCenterManager 我如何解锁成就吗?
谢谢。
我正在尝试解锁我为 iPhone 制作的游戏中的一项成就,但相当不成功。
从演示 Game Center 代码的 Apple 自己的 GKTapper 项目示例中,我已将 GameCenterManager.h 和 .m 以及 AppSpecificValues.h 文件复制到我的项目中。我已成功加载成就和排行榜以供查看。
但是,我无法解决或正确了解如何实际解锁成就。有人能指出如何使用这个或没有 GameCenterManager 我如何解锁成就吗?
谢谢。
- (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%
顺便说一句,如果您设置 percentComplete=100,“已完成”属性并不总是设置为 YES,至少不在同一个会话中。我花了一段时间调试为什么我的游戏会多次授予成就,即使百分比完成设置为 100。