【问题标题】: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。