我试着更好地解释一下情况。
变量是:
int punteggio;
CCLabelTTF *labelPunteggio;
然后在init metod中我在屏幕上打印我的分数:
- (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;
}
}
谢谢!
答案 0 :(得分:0)
您的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变量将始终被设置,无论游戏状态如何。不要忘记将当前游戏开头的高分数设置为当前必须坚持的高分数。