2013-03-28 5 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]; 
}