2012-07-10 3 views
0

높은 점수는 화면에 전혀 머물러 있지 않으므로 큰 문제는 내가해야 할 일이므로 점수가 초과 될 때까지 점수를 유지하고 높은 점수와 같은 점수를 업데이트합니다.점수가 덮어 쓰여지고 있습니다. cocos2d

며칠 전에 다른 사용자로부터 조언을 받아서 간단하게 보였지만 시도 할 때 문제가 해결되지 않았습니다. 나는 거의 모든 종류의 조합과 콩을 시도하지 않았다. 그래서 누군가가 오류를 지적하는 데 도움이 필요해 보입니다. oldscore하지만

초기화

_oldScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"]; 
CGSize winSize = [[CCDirector sharedDirector] winSize]; 
    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) { 
     [[NSUserDefaults standardUserDefaults] setInteger:_score forKey:@"score"];   
     [_scoreLabel setString:[NSString stringWithFormat:@"score%d", _score]]; 

는 지금까지이 위대한 작품을 구현, 모든 화면에 유지되지 않습니다. 플레이어가 높은 점수를 알고 싶습니다. 사용자가 이전 점수를 저장하기 위해 다른 키로 새 nsuserdefaults를 작성한다고 말했습니다. 그렇게하면 가장 높은 점수를 가진 오래된 점수가 화면에 남아있게됩니다.

답변

0

//은 우선 점수를 저장하려면

int highScore  = yourGameScore; 
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"score"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

// 환경 설정에서 저장된 값을 얻으려면

highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"score"] intValue ]; 

//적인 Cocos2D 라벨을 통해 UR의 점수 값을 설정하려면

[_scoreLabel setString:[NSString stringWithFormat:@"%d", _oldScore]]; 
관련 문제