高分弹出窗口如果是新的

时间:2014-04-04 21:40:37

标签: ios objective-c cocoa cocos2d-iphone

我想实现一个简单的概念。如果玩家获得新的高分,则会有精灵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”或类似东西,但我不知道如何处理这个......

1 个答案:

答案 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