ハイスコアを設定してみて、ハイスコアを超えるとハイスコアに表示されますが、現在はハイスコアを超えるとすぐに同じ量のハイスコアポイントが必要になります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 つ。スコアは積み上げられますが、最初からやり直すことはありません。