我想解鎖遊戲中的成就,我正在爲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.