0

ゲームヘリコプターのように、またはLeft 4 Dead Survivalモードのように、スコアを維持し、スコアを超えた場合にのみ変更したいと思います。これが私がこれまでに持っているコードです。./mファイル

                    _score = 0;
                         _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]];



}

および.hファイル

       int _score;
int _oldScore;
CCLabelTTF *_scoreLabel;

入れてみました

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

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

しかし、私がそれをしたとき、それはデータを保存するだけで、最初からやり直すのではなく上昇し続け、スコアを超えたときにのみ変化します。

4

1 に答える 1

0

スコアが古いスコアよりも大きいかどうかを比較し、それを保存する必要があります。

例えば、

if (_score > _oldscore) {
  // Save out new score as it is more than the old score

  // Then reset ready for next time
  _oldscore = _score;
  _score = 0;
}

ただし、このような問題に苦しんでいる場合は、開発をさらに進める前にプログラミングの基礎を今すぐ止めて学習しない限り、多くの問題に直面することになることをお勧めします。

于 2012-06-27T09:55:07.090 に答える