0

ハイスコ​​アを設定してみて、ハイスコアを超えるとハイスコアに表示されますが、現在はハイスコアを超えるとすぐに同じ量のハイスコアポイントが必要になります1ポイント上がる。たとえば、キルごとに 1 ポイントを獲得します。ハイ スコアが 7 ポイントの場合、ハイ スコア ボードで 8 ポイントになるにはさらに 7 キルが必要です。ハイスコ​​アを取得するとすぐにスコアが再びリセットされ、ハイスコアで同じ量のポイントが1つ上がるのに必要です。それが理にかなっていることを願っています。

ここにコードがあります

.h ファイル

 int _score;
    int _oldScore;
   CCLabelTTF *_scoreLabel;
    @property (nonatomic, assign) CCLabelTTF *scoreLabel;

.m ファイル

     _score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];           


     _oldScore = -1;
     self.scoreLabel = [CCLabelTTF labelWithString:@"" dimensions:CGSizeMake(100, 50) alignment:UITextAlignmentRight fontName:@"Marker Felt" fontSize:32];
     _scoreLabel.position = ccp(winSize.width - _scoreLabel.contentSize.width, _scoreLabel.contentSize.height);
     _scoreLabel.color = ccc3(255,0,0);
     [self addChild:_scoreLabel z:1];     



    if (_score > _oldScore) {

   _oldScore = _score;

    [_scoreLabel setString:[NSString stringWithFormat:@"score%d", _score]];

    [[NSUserDefaults standardUserDefaults] setInteger:_oldScore forKey:@"score"];

   [[NSUserDefaults standardUserDefaults] synchronize];          


      _score = 0;         

}

  }

これで、_score = 0; がわかりました。ボードを休ませましたが、ハイスコアを取得するとすぐにリセットされ続けます。別の例として、ハイ スコア ボードで 12 ポイントを獲得した場合、ハイ スコアで 13 ポイントに上がるには 24 ポイントのキルが必要です。

_score=0; を取り出すともう 1 つ。スコアは積み上げられますが、最初からやり直すことはありません。

4

1 に答える 1

1

私はこれらの行を理解していません:

 _score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];           
 _oldScore = -1;

[[NSUserDefaults standardUserDefaults] integerForKey:@"score"]古いスコアであってはなりませんか?なぜ_oldScoreを-1に設定するのですか?

多分私は何かが欠けています...

于 2012-06-27T19:12:45.817 に答える