防止游戏套件不止一次获得成就

时间:2012-09-11 01:59:54

标签: iphone objective-c ios itunesconnect gamekit

我在我的iPhone游戏中使用Game Kit,当我完成一个关卡时,我会检查这样的成就:

if (timeSpentInLevel < 30) {
        GKAchievement *ach = [[GKAchievement alloc] initWithIdentifier:@"cryptoquips.achievements.solutiontime.30s"];
        ach.percentComplete = 100.0;
        ach.showsCompletionBanner = YES;
        if (ach != NULL) {
            [ach reportAchievementWithCompletionHandler:^(NSError *error) {
                if (error!= nil) {
                    NSLog(@"achievement reporting failed");
                }
            }];
        }
    }

但是当我在另一个级别再次执行此操作时,横幅显示无论如何,我认为这些积分将再次获得。在iTunes Connect中,我将成就设置为“可实现多于一次”,否则不应允许这样做。

如何防止这项成就被多次授予?

1 个答案:

答案 0 :(得分:1)

您可以使用 loadAchievementsWithCompletionHandler:来执行此操作。它将获得已经由玩家获得的成就的NSArray。枚举此数组并检查其中任何一个是否是您要解锁的成就,如果没有,请解锁。