0

ハイスコ​​アが画面にまったく表示されないので、大きな問題は、スコアが超えられるまで画面に表示されたままになり、ハイスコアのようにスコアが更新されるようにすることです。

数日前に別のユーザーからアドバイスを受けたので、簡単そうに見えましたが、やってみてもうまくいきませんでした。私はほとんどすべての異なるタイプの組み合わせを試しましたが、豆はありませんでした。だから私は誰かがエラーを指摘するのを手伝ってくれる必要があるようです。

初期化

 _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]];

これまでのところ、それはうまく機能し、oldscore以外はすべて画面に表示されません。ハイスコ​​アとは何かをプレイヤーに知ってもらいたい。ユーザーは、古いスコアを保存するために別のキーで新しいnsuserdefaultsを作成すると言いました。そのため、スコアが最も高い古いスコアが画面に表示されたままになります。

4

1 に答える 1

0

//スコアを優先して保存するには

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

//設定から保存された値を取得するには

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

//スコア値をurcocos2dラベルに設定するには

[_scoreLabel setString:[NSString stringWithFormat:@"%d", _oldScore]];
于 2012-07-10T04:17:52.943 に答える