cocos2d高分搞砸了

时间:2012-06-27 19:05:45

标签: iphone xcode4 cocos2d-iphone

我尝试将我的高分设置在哪里,如果高分超过它将显示高分并且我有一些想出的但是现在一旦高分超过它将花费相同的数量高分得分上升一分。例如,每次击杀你得到一分,如果高分是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,还有一件事;分数将保持堆叠但不会重新开始。

1 个答案:

答案 0 :(得分:1)

我不明白这些界限:

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

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

也许我错过了什么......