0

iPhone 向けに作成しているゲームの実績を解除しようとしていますが、うまくいきません。

Game Center コードを示す Apple 自身の GKTapper プロジェクト サンプルから、GameCenterManager.h と .m および AppSpecificValues.h ファイルをプロジェクトにコピーしました。実績とリーダーボードを表示するために正常にロードしました。

ただし、実際に成果を解除する方法を理解したり、正しく理解したりすることはできません。これを使用する方法、または GameCenterManager を使用せずに実績を解除するにはどうすればよいか教えてください。

ありがとう。

4

2 に答える 2

2
    - (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%

于 2010-12-18T17:56:11.160 に答える
0

ところで、少なくとも同じセッション内では、percentComplete=100 を設定すると、「完了」プロパティが常に YES に設定されるとは限りません。percentComplete が 100 に設定されている場合でも、ゲームが実績を何度も獲得した理由をデバッグするのにしばらく時間を費やしました。

于 2011-04-19T06:17:25.480 に答える