0

私はevrythingを行い、ゲームセンターをゲームに統合しました。私のゲームはランナーゲームなので、ベストランナー(500メートル)、エクストリームランナー(1000メートル)、キングランナー(2000メートル)のようないくつかの成果をゲームに取り入れました。それ。

すべてが正常に機能しますが、poblmは、ユーザーが正確に500メートル走ると、アチーブメントボードで最高のランナーバッジのロックが解除されます。ユーザーは500〜999メートルを実行します。私はこれを解決するために多くのことを試みますが、運がありません。

私のコードは更新スコアメソッドです

int dismetr = self.currentScore >= 500;

    self.currentScore = dismetr;

    [self checkAchievements];

私はここで静的に値を500として置きます

とスイッチケース方式で

- (void) checkAchievements
{



    NSString* identifier = NULL;
    double percentComplete = 0;
    switch(self.currentScore)
    {

            case 500:
                {
                    if (self.currentScore >= 500) {
                    NSLog(@"ACHIVEMENT 500");
                    identifier= kAchievement500meter ;
                    percentComplete= 100.0;
                    break;

                }
            }

        case 1000:
    // onother statments
        }

  if(identifier != NULL)
    {
        [self.gameCenterManager submitAchievement: identifier percentComplete: percentComplete];
    }
}

とにかくスコアを更新していません。

その更新スコア方式

int dismetr = 500;

    self.currentScore = dismetr;

    [self checkAchievements];

そしてこの方法では

- (void) checkAchievements
{

    NSString* identifier = NULL;
    double percentComplete = 0;
    switch(self.currentScore)
    {

            case 500:
                {

                    NSLog(@"ACHIVEMENT 500");
                    identifier= kAchievement500meter ;
                    percentComplete= 100.0;
                    break;


            }

        case 1000:
    // onother statments
        }

  if(identifier != NULL)
    {
        [self.gameCenterManager submitAchievement: identifier percentComplete: percentComplete];
    }
}

スコアを正しく更新しています。この問題を解決するために何ができますか。これを行うのを手伝ってください。

前もって感謝します。

4

1 に答える 1

1

switchonを実行しているself.currentScoreので、正確な値をチェックしています。if-elseあなたは本当にそれを-constructで行うべきです。それcurrentScoreはが特定の範囲にあるかどうかをチェックします。

ちょうどこのような:

- (void) checkAchievements
{

    NSString* identifier = NULL;
    double percentComplete = 0;

    if(self.currentScore >= 500 && self.currentScore < 1000) {
        NSLog(@"ACHIVEMENT 500");
        identifier= kAchievement500meter ;
        percentComplete= 100.0;
    }

    // onother statments

    if(identifier != NULL)
    {
        [self.gameCenterManager submitAchievement:identifier
                                  percentComplete:percentComplete];
    }
}
于 2012-10-08T07:48:53.967 に答える