2013-03-28 50 views
-1

我想在屏幕上顯示遊戲的當前得分和最佳得分。這是工作,但即使當前分數低於最佳分數,我也會每次重新開始遊戲的最佳分數變化。遊戲中屏幕上的高分和當前得分

CCLabelTTF *punteggio; 
    NSString *stringa; 
    NSString *stringa2; 
    CCLabelTTF *punteggioMAX; 

    int score; 
    int scoreMAX; 

有方法來保存得分,以增加分數和分數在遊戲結束時復位。

-(void)aum{ 
    score++; 
    stringa = [NSString stringWithFormat:@"Punteggio: %d",score]; 
    [punteggio setString:stringa]; 
} 



-(void)res{ 
    score=0; 
    stringa = [NSString stringWithFormat:@"Punteggio: %d",score]; 
    [punteggio setString:stringa]; 
} 

-(void)sal{ 
    NSUserDefaults *ud=[NSUserDefaults standardUserDefaults]; 
    [ud setInteger:score forKey:@"Punteggio"]; 
    [ud synchronize]; 
} 

-(void)sal2{ 
    NSUserDefaults *ud=[NSUserDefaults standardUserDefaults]; 
    [ud setInteger:scoreMAX forKey:@"Punteggio"]; 
    [ud synchronize]; 
} 

而在init方法:

NSString *fontName = @"score.fnt"; 
     stringa = [NSString stringWithFormat:@"Punteggio: %d",score]; 
     punteggio = [CCLabelBMFont labelWithString:stringa fntFile:fontName]; 
     punteggio.scale = 0.4; 
     punteggio.position=ccp(40,altezzaSchermo - 15); 
     [self addChild:punteggio]; 
     NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 
     score=[ud integerForKey:@"Punteggio"]; 



     stringa2 = [NSString stringWithFormat:@"Best Score: %d",score]; 
     punteggioMAX = [CCLabelBMFont labelWithString:stringa2 fntFile:fontName]; 
     punteggioMAX.scale = 0.4; 
     punteggioMAX.position=ccp(40,altezzaSchermo - 35); 
     [self addChild:punteggioMAX]; 
     scoreMAX=[ud integerForKey:@"punteggioMAX"]; 


if(score>scoreMAX) scoreMAX = score; 

     [self res]; 

謝謝。

+0

請不要重複您先前的問題。 – rmaddy

回答

0

您正在用錯誤的鑰匙節省最高分。嘗試:

-(void)sal2{ 
    NSUserDefaults *ud=[NSUserDefaults standardUserDefaults]; 
    [ud setInteger:scoreMAX forKey:@"punteggioMAX"]; 
    [ud synchronize]; 
}