0

我尝试设置我的高分,如果超过高分,它将显示在高分中,我已经知道了一些东西,但是现在一旦超过高分,它将获得相同数量的高分上升一点。例如,每次击杀获得一分,如果高分是 7 分,则需要再击杀 7 次才能在高分板上达到 8 分。一旦您获得高分,分数就会再次重置,并在高分中获得相同数量的分数以上升一次。希望这是有道理的。

这是代码

.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 分,则需要 24 分的杀戮才能在高分上达到 13 分。

如果我取出 _score=0; 还有一件事 分数将继续堆积,但不会重新开始。

4

1 回答 1

1

我不明白这些行:

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

[[NSUserDefaults standardUserDefaults] integerForKey:@"score"]应该是旧分数吗?为什么将_oldScore 设置为-1?

也许我错过了一些东西......

于 2012-06-27T19:12:45.817 回答