0

私は状況をよりよく説明しようとします。

変数は次のとおりです。

int punteggio;

CCLabelTTF *labelPunteggio;

次に、init メソッドでスコアを画面に出力します。

- (id)init {
    if ((self = [super init])) {

    // PUNTEGGIO
    labelPunteggio = [CCLabelTTF labelWithString:@"0000" fontName:@"Marker Felt" fontSize:13];

    [self addChild:labelPunteggio];
    ....
    }
}

そして、これはプンテッジョにスコアを追加する機能です。たとえば、モンスターを倒すたびに 10 ポイントが追加されます。

-(void)aggiungiPunti
{
    punteggio = punteggio +0001;

    [labelPunteggio setString:[NSString stringWithFormat:@"%d", punteggio]];
}

しかし今、プレイヤーがゲームオーバーしたときにスコアを保存する方法がわかりません。このスコアを保存してから、ハイスコアを画面に出力したいと思います。

-(void) setScore:(int)score
{
    punteggio = highScore;

    if (punteggio>highScore)
    {
        highScore = punteggio;
    }
}

ありがとうございました!

4

1 に答える 1

0

highScore = punteggio を設定しているため、setScore メソッドは確実に機能しません。試す:

-(void) setHighScore:(int) newScore {
    if(newScore>highScore) highScore = newScore;
}

現在のスコアを更新するたびに

-(void)aggiungiPunti
{
    punteggio = punteggio +0001;
    [labelPunteggio setString:[NSString stringWithFormat:@"%d", punteggio]];
    [self setHighScore:punteggio];
}

このようにして、ゲームプレイの状態に関係なく、highScore 変数が常に設定されます。現在のゲームの開始時に highScore を現在の highScore に設定することを忘れないでください。

于 2013-03-08T20:11:24.483 に答える