- (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];
float を使用して実績の割合を計算できます。ユーザーが 100 に達すると、実績のロックが解除されます。
これを行うこともできます:
[self reportAchievementIdentifier:indentifier percentComplete:((actualpoints/neededPoints)*100.0)];
neededPoints は、この実績のロックを解除するために必要なポイントを意味します。例: actualPoints = 300; 必要なポイント = 600;
計算: 300/600 = 0.5 * 100 = 50%