2014-09-01 1 views
0

저는 Cocos2d 및 SpriteBuilder로 게임을 만들고 있습니다. 나는 문제가있다. ( EX : 내 점수가 8 일 때 처음으로 높은 점수는 8이다. 그렇다면 나는 점수가 8 이상이되면 게임을 다시 시도한다. ==> 버그 쇼 : (Cocos2d에서 NSUserDefaults를 사용하여 HighScore를 저장할 수 없습니다.

최고 점수와 내 출처 :..!?

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

은 충돌 않습니다 희망? 최고 기록을 업데이트하지 않습니까? – LearnCocos2D

+0

나는 그것이 충돌한다고 생각합니다 : ( 처음 프로그램을 실행하면 Xcode, 새 highScore 업데이트가 괜찮습니다. 그럼 나는 게임을 다시 시도하고 score> 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; 
}