我正在使用cocos2d进行游戏,因为在更新分数时,旧分数值会出现在标签上并且新值会被覆盖。我使用以下代码来显示分数,
LblScore = [CCLabel labelWithString:[NSString stringWithFormat:@"%d",score]
dimensions:CGSizeMake(100, 300)
alignment:UITextAlignmentCenter
fontName:@"Arial"
fontSize:32.0];
因此,如果有任何人知道如何更新新分数,则不会显示分数值并且所有事情都会混淆不清?
答案 0 :(得分:8)
我不完全理解你在做什么,因为我看不到你的所有代码。但是,我认为你想要的是:
在你的场景中:
// Both of these are class variables
score = 0;
LblScore = [CCLabel labelWithString:[NSString stringWithFormat:@"%d",score] dimensions:CGSizeMake(100, 300) alignment:UITextAlignmentCenter fontName:@"Arial" fontSize:32.0];
// Position the score, wherever you want it
[LblScore setPosition: CGPointMake(300, 240)];
当你的分数发生变化时:
score++ // Not really, but your score changes somehow...
[LblScore setString: [NSString stringWithFormat:@"%d",score]];
此部分可能采用setScore:
或changeScore:
方法,可更改内部得分值并同时更改标签。
答案 1 :(得分:0)
我的问题的解决方案是,我必须在 - (id)init方法中定义标签声明,在任何不会覆盖值的地方提供值。
我已经尝试了它并且它正在工作,但仍然感谢所有为我提供帮助的人