Ios 高分和当前分数
我想在屏幕上显示游戏的当前分数和历史上最好的分数。 这是可行的,但每次我重新启动游戏时,即使当前分数低于最佳分数,最佳分数也会发生变化Ios 高分和当前分数,ios,cocos2d-iphone,2d-games,Ios,Cocos2d Iphone,2d Games,我想在屏幕上显示游戏的当前分数和历史上最好的分数。 这是可行的,但每次我重新启动游戏时,即使当前分数低于最佳分数,最佳分数也会发生变化 CCLabelTTF *punteggio; NSString *stringa; NSString *stringa2; CCLabelTTF *punteggioMAX; int score; int scoreMAX; 有保存分数、添加分数和在游戏结束时重置分数的方法 -(void)aum{ score+
CCLabelTTF *punteggio;
NSString *stringa;
NSString *stringa2;
CCLabelTTF *punteggioMAX;
int score;
int scoreMAX;
有保存分数、添加分数和在游戏结束时重置分数的方法
-(void)aum{
score++;
stringa = [NSString stringWithFormat:@"Punteggio: %d",score];
[punteggio setString:stringa];
}
-(void)res{
score=0;
stringa = [NSString stringWithFormat:@"Punteggio: %d",score];
[punteggio setString:stringa];
}
-(void)sal{
NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
[ud setInteger:score forKey:@"Punteggio"];
[ud synchronize];
}
-(void)sal2{
NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
[ud setInteger:scoreMAX forKey:@"Punteggio"];
[ud synchronize];
}
在init方法中:
NSString *fontName = @"score.fnt";
stringa = [NSString stringWithFormat:@"Punteggio: %d",score];
punteggio = [CCLabelBMFont labelWithString:stringa fntFile:fontName];
punteggio.scale = 0.4;
punteggio.position=ccp(40,altezzaSchermo - 15);
[self addChild:punteggio];
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
score=[ud integerForKey:@"Punteggio"];
stringa2 = [NSString stringWithFormat:@"Best Score: %d",score];
punteggioMAX = [CCLabelBMFont labelWithString:stringa2 fntFile:fontName];
punteggioMAX.scale = 0.4;
punteggioMAX.position=ccp(40,altezzaSchermo - 35);
[self addChild:punteggioMAX];
scoreMAX=[ud integerForKey:@"punteggioMAX"];
if(score>scoreMAX) scoreMAX = score;
[self res];
谢谢。您没有保存
punteggioMAX
,因此当您从用户默认值检索时,它将返回0
易于验证:设置断点,检查变量。我知道,你能给我一个解决方案吗?你在哪里将分数值分配给scoreMAX?关于stringa2=[NSString stringWithFormat:@“最佳分数:%d”,分数];