2016-04-08 9 views
0

Sie waren die ganze Nacht mit einem Highscore ausgestattet. Ich kann es erhalten, um zu aktualisieren, aber es speichert nicht von Spiel zu Spiel noch wenn App schließt. Wenn Sie 8 Punkte in diesem Spiel gemacht haben, ist Ihre Punktzahl/Highscore 8. Wenn Sie 3 Punkte im folgenden Spiel machen, ist Ihr Ergebnis 3 und Highscore ist 3, wenn es noch 8 sein sollte. Was vermisse ich?Aktualisiert und gespeichert HighScore

//Score Display 

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
    int _score = [prefs integerForKey:@"score"]; 
    SKLabelNode *scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"ChalkDuster"]; 
    //Other label node configuration here 
    scoreLabel.position = CGPointMake(self.size.width/2,325); 
    scoreLabel.fontColor = [SKColor blackColor]; 
    scoreLabel.text = [NSString stringWithFormat:@"Score: %d",_score]; 
    [self addChild:scoreLabel]; 

    //High Score 
    NSUserDefaults *prefs2 = [NSUserDefaults standardUserDefaults]; 
    int _highscore = [prefs2 integerForKey:@"highscore"]; 
    SKLabelNode *highScoreLabel = [SKLabelNode labelNodeWithFontNamed:@"ChalkDuster"]; 
    highScoreLabel.position = CGPointMake(self.size.width/2,275); 
    highScoreLabel.fontColor = [SKColor blackColor]; 
    highScoreLabel.text = [NSString stringWithFormat:@"High Score: %d",_highscore]; 
    [self addChild:highScoreLabel]; 

    if(_score > _highscore){ 
     _highscore = _score; 
       int _highscore = [prefs2 integerForKey:@"highscore"]; 
       highScoreLabel.text = [NSString stringWithFormat:@"High Score: %d",_highscore]; 
     NSUserDefaults *prefs2 = [NSUserDefaults standardUserDefaults]; 



    } 

Antwort

0

Sie überprüfen _score> _highscore aber du bist Einstellung nie den Highscore wieder in prefs2. Sie lesen aus es zurück, aber setzen es nicht in.

brauchen so etwas wie [prefs2 setInteger:_highscore forKey:@"hightscore"]

+0

Hatte den Code neu zu organisieren und hinzugefügt, was Sie vorgeschlagen. Lief wie am Schnürchen. Vielen Dank. – BARIIIIIIICODE

+0

Als Randnotiz benötigen Sie keine Prefs und Prefs2. Sie zeigen in der Tat auf den gleichen Ort. Holen Sie sich einfach standardUserDefaults und verwenden Sie die Prefs immer wieder. – BLE

+0

Gut zu wissen. Vielen Dank – BARIIIIIIICODE