2013-03-28 2 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

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

답변

0

punteggioMAX을 저장하지 않으므로 사용자 기본값에서 검색하면 0이 반환됩니다.

확인하기 쉽습니다 : 중단 점을 설정하고 변수를 확인하십시오.

+0

나도 알아, 나에게 해결책을 줄 수 있니? –

관련 문제