我想实现一个简单的概念。如果玩家获得新的高分,则会有精灵newHS
成为visible
,否则会被隐藏。这是我的代码:
if (score < highScore) {
newHS.visible = NO;
}
else {
highScore = score;
[[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults]synchronize];
newHS.visible = YES;
}
然而,我遇到了一个问题。如果我从得分1开始,它弹出就好了。然后,如果我再次得分1,它仍会弹出(因为得分不低于highScore,它是相同的),但我不希望这样,因为它不再是一个新的高分......我怎么能绕过这个?我想添加另一个变量,比如“previousScore”或类似东西,但我不知道如何处理这个......
答案 0 :(得分:1)
int highscore = [[NSUserDefaults standardUserDefaults] valueForKey:@"HighScore"];
if (score > highscore) {
newHS.visible = YES;
[[NSUserDefaults standardUserDefaults] setInteger:score forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
else newHS.visible = NO;
您没有告诉我们您创建highscore integer
的方式或位置,我猜您创建了一个新的本地highscore
int并将其设置为0
而不是将其设置为已保存的highscore
。