【问题标题】:Print score and High score打印分数和高分
【发布时间】:2013-03-09 04:11:24
【问题描述】:

我试图更好地解释这种情况。

变量是:

int punteggio;

CCLabelTTF *labelPunteggio;

然后在初始化方法中,我在屏幕上打印我的分数:

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

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

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

这就是在Punteggio上添加分数的功能:例如,我每杀死一个怪物我就加10分。

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

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

但是现在,我不知道当玩家完成游戏时如何保存分数。 我想保存这个分数,然后在屏幕上打印高分, 我在想

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

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

谢谢!

【问题讨论】:

    标签: ios cocos2d-iphone


    【解决方案1】:

    您的 setScore 方法肯定不起作用,因为您设置了 highScore = punteggio,if 永远不会为真。试试:

    -(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。

    【讨论】:

    • 谢谢你!我尝试但不起作用...我在 init 方法中打印 labelScore = [CCLabelTTF labelWithString:@"0000" fontName:@"Marker Felt" fontSize:13]; [自我 addChild:labelScore]; labelhighScore = [CCLabelTTF labelWithString:@"0" fontName:@"Marker Felt" fontSize:13]; [self addChild:labelhighScore];分数变化,但高分始终为 0。
    猜你喜欢
    • 1970-01-01
    • 2021-01-06
    • 2023-03-03
    • 2020-05-10
    • 2013-11-29
    • 2021-05-08
    • 2017-02-08
    • 1970-01-01
    • 2016-11-01
    相关资源
    最近更新 更多