Ios 为什么这个高分会出现故障?
由于某些原因,游戏结束页面上的最高分没有正确显示。一轮比赛后,分数和高分都显示在“游戏结束”菜单上。分数显示得很好,但是如果用户超过了他们的高分,它不会更新,直到重新加载菜单 如果这令人困惑: 第1场:得分=30,上一个高分显示=10 第二场:得分=40,显示先前的高分=30 第三场:得分=10,高分显示=30 因此,在下一次加载游戏结束菜单之前,它基本上不会显示新的高分。 代码如下:Ios 为什么这个高分会出现故障?,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,由于某些原因,游戏结束页面上的最高分没有正确显示。一轮比赛后,分数和高分都显示在“游戏结束”菜单上。分数显示得很好,但是如果用户超过了他们的高分,它不会更新,直到重新加载菜单 如果这令人困惑: 第1场:得分=30,上一个高分显示=10 第二场:得分=40,显示先前的高分=30 第三场:得分=10,高分显示=30 因此,在下一次加载游戏结束菜单之前,它基本上不会显示新的高分。 代码如下: -(void)update:(CFTimeInterval)currentTime { score
-(void)update:(CFTimeInterval)currentTime {
score = _debris.count + _debris2.count;
_scoreLabel.text = [NSString stringWithFormat:@"%d", score];
}
在initWithSize
方法中:
highScoreNumber = [[NSUserDefaults standardUserDefaults] integerForKey:@"highScoreSaved"];
if (score > highScoreNumber) {
highScoreNumber = score;
[[NSUserDefaults standardUserDefaults] setInteger:highScoreNumber forKey:@"highScoreSaved"];
这是游戏中的代码,这是游戏结束菜单上的代码:
SKLabelNode *highScore = [SKLabelNode labelNodeWithFontNamed:@"DIN Condensed"];
highScore.fontSize = 40;
highScore.alpha = 0.7;
highScore.fontColor = [SKColor whiteColor];
highScore.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)-15);
highScoreNumber = [[NSUserDefaults standardUserDefaults] integerForKey:@"highScoreSaved"];
highScore.text = [NSString stringWithFormat:@"BEST: %d", highScoreNumber];
基于此,有没有任何理由说明为什么当出现新的highscore时highscore没有更新,而是等待gamoever屏幕重新加载 您是否在
[[NSUserDefaults standardUserDefaults]setInteger:highScoreNumber forKey:@“highScoreSaved”]之后立即调用[[NSUserDefaults standardUserDefaults]synchronize]
代码>?这将确保立即保存数据。您是否在[[NSUserDefaults standardUserDefaults]setInteger:highScoreNumber forKey:@“highScoreSaved”]之后立即调用[[NSUserDefaults standardUserDefaults]synchronize]
代码>?这将确保数据立即被保存。没有,但我尝试了,它成功了。谢谢太好了:)我应该把它作为答案发布吗?是的@MatíasR你应该发布。是的@MatíasR我会选择它作为正确答案。