2014-09-01 3 views
0

Я делаю игру от Cocos2d и SpriteBuilder. У меня проблема :( EX: В первый раз, когда мой счет равен 8, высокий балл равен 8. Затем я повторяю игру, мой счет> 8, когда я умираю ==> ошибка :(Не удается сохранить HighScore с помощью NSUserDefaults в Cocos2d

Мой источник с топ-листом:..

NSNumber *highScore = [[NSUserDefaults standardUserDefaults] objectForKey:@"_highscore"]; 
    if (self.score > [highScore intValue]) { 
     // new highscore 
     highScore = [NSNumber numberWithInt:self.score]; 

     [[NSUserDefaults standardUserDefaults] setObject:highScore forKey:@"_highscore"];--->BUG 

     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
+0

, что вы имеете в виду BUG это крах!? он не обновляет рекорды? – LearnCocos2D

+0

Я думаю, что это сбой :( В первый раз, когда я запускаю программу i n Xcode, обновление нового highScore в порядке. Затем я повторю игру и получаю счет> highScore ----> BUG **** [[NSUserDefaults standardUserDefaults] setObject: highScore forKey: @ "_ highscore"]; –

+0

вы * думаю * он падает? Это или нет? Если он отправит сообщение о сбое и журнал. – LearnCocos2D

ответ

0

Я использую этот код, чтобы получить/установить рекорд он работает в выпущенных играх Надеется, что это помогает

+(void)setNewHighScore:(int)score{ 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setValue:[NSNumber numberWithInt:score] forKey:@"GameNameHighScore"]; 
} 

+(int)getHighScore{ 
    int highScore = 0; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    highScore = [[defaults valueForKey:@"GameNameHighScore"] intValue]; 
    return highScore; 
} 
Смежные вопросы