0

像游戏直升机或像 Left 4 dead 生存模式一样,我希望分数保持不变,只有在超过分数时才会改变。这是我到目前为止的代码。./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 回答