2012-06-27 2 views
0

높은 점수를 얻으면 높은 점수를 얻었고 높은 점수를 얻은 후에는 바로 지금 그것을 알아 냈습니다. 한 점 위로 올라 가기 위해 같은 점수의 높은 점수를받습니다. 예를 들어 각 킬마다 1 포인트를 얻습니다. 높은 점수가 7 점이라면 최고 점수 판에서 8 점을 얻으려면 7 점을 더 뽑아야합니다. 높은 점수를 얻 자마자 점수가 다시 재설정되고 최고 점수에서 같은 점수만큼 점수가 올라갑니다. 그것이 의미가 있기를 바랍니다. 여기 cocos2d 높은 점수가 엉망으로 만들었습니다

코드

.H 파일

int _score; 
    int _oldScore; 
    CCLabelTTF *_scoreLabel; 
    @property (nonatomic, assign) CCLabelTTF *scoreLabel; 

하는 .m 파일 이제 내가 아는

 _score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];   


    _oldScore = -1; 
    self.scoreLabel = [CCLabelTTF labelWithString:@"" dimensions:CGSizeMake(100, 50) alignment:UITextAlignmentRight fontName:@"Marker Felt" fontSize:32]; 
    _scoreLabel.position = ccp(winSize.width - _scoreLabel.contentSize.width, _scoreLabel.contentSize.height); 
    _scoreLabel.color = ccc3(255,0,0); 
    [self addChild:_scoreLabel z:1];  



    if (_score > _oldScore) { 

    _oldScore = _score; 

    [_scoreLabel setString:[NSString stringWithFormat:@"score%d", _score]]; 

    [[NSUserDefaults standardUserDefaults] setInteger:_oldScore forKey:@"score"]; 

    [[NSUserDefaults standardUserDefaults] synchronize];   


     _score = 0;   

} 

    } 

인 _score = 0; 보드를 쉬었지만 높은 점수를 얻 자마자 리셋을 계속합니다. 또 다른 예는 최고 점수 판에서 12 점을 얻었을 때 24 점을 획득하여 최고 점수에서 13 점을 얻습니다.

나가는 경우 한 가지 더 _score = 0; 점수는 스태킹을 유지하지만 다시 시작하지 않습니다.

_score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];   
_oldScore = -1; 

[[NSUserDefaults standardUserDefaults] integerForKey:@"score"] 이전 점수 안 : 나는이 라인을 이해하지

+0

은 내가 if 문에 닫는 괄호가 표시되지 않습니다. if 문이 종료되는 시점을 알 수 있도록 하단에 몇 줄의 코드를 추가 할 수 있습니까? – EdFred

+0

그냥 두 개 더 중괄호가 모두 –

답변

1

? 및 _oldScore를 -1로 설정하는 이유는 무엇입니까? 이 논리가 무엇을하고 있는지 이야기하기 어렵다 있도록

어쩌면 내가 놓친 거지 뭔가 ...

+0

ns userdefualts는 이전 점수를 저장하고 -1은 정직하지 않아도됩니다. –

+0

예,하지만 _oldScore는 NSUserDefaults에서 검색됩니다. 당신은 거기에 마지막으로 가장 높은 점수를 저장 한 다음 현재 하나와 비교 ... – sergio

+0

그래서 정확히 무엇을해야합니까 ' –

관련 문제