我想解锁游戏中的成就,我正在为iPhone制作,但相当不成功。解锁成就 - GameCenter iPhone
从苹果自己的GKTapper项目示例演示Game Center代码我已将GameCenterManager.h和.m以及AppSpecificValues.h文件复制到我的项目中。我已成功加载成就和排行榜以供查看。
但是我无法解决或如何实际解锁成就。有人能指出如何使用这个或没有GameCenterManager,我怎么能解锁一个成就?
谢谢。
我想解锁游戏中的成就,我正在为iPhone制作,但相当不成功。解锁成就 - GameCenter iPhone
从苹果自己的GKTapper项目示例演示Game Center代码我已将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)];
neededPoints意味着你需要解锁这个成就点。例如: actualPoints = 300; neededPoints = 600;
它计算:300/600 = 0.5 * 100 = 50%
顺便说一下, “已完成” 属性不总是设置为YES如果设置PERCENTCOMPLETE = 100,至少不会在同一会话内。我花了一段时间调试为什么我的游戏几次获得成就,即使percentComplete设置为100.