2013-03-28 89 views
0

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

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

你在哪裏分配你的分數值到scoreMAX? – Madhumitha

+0

On stringa2 = [NSString stringWithFormat:@「Best Score:%d」,score]; –

回答

0

您沒有保存punteggioMAX,因此當您從用戶默認值中檢索時,它將返回0。

易於驗證:設置斷點,檢查變量。

+0

我知道,你能給我一個解決方案嗎? –