1

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 では、実績を "Achievable More Than Once" に設定していないので、これは許可されません。

この実績が複数回授与されないようにするにはどうすればよいですか?

4

1 に答える 1

1

これを行うには、 loadAchievementsWithCompletionHandler:を使用できます。プレイヤーがすでに獲得した実績の NSArray を取得します。この配列を列挙し、それらのいずれかがロックを解除したい実績であるかどうかを確認し、そうでない場合はロックを解除します。

于 2012-09-11T02:20:31.057 に答える