更新Cocos2d中的标签值

时间:2010-04-30 05:10:24

标签: objective-c cocos2d-iphone

我正在使用cocos2d进行游戏,因为在更新分数时,旧分数值会出现在标签上并且新值会被覆盖。我使用以下代码来显示分数,

LblScore = [CCLabel labelWithString:[NSString stringWithFormat:@"%d",score]
                         dimensions:CGSizeMake(100, 300) 
                          alignment:UITextAlignmentCenter  
                           fontName:@"Arial" 
                           fontSize:32.0];

因此,如果有任何人知道如何更新新分数,则不会显示分数值并且所有事情都会混淆不清?

2 个答案:

答案 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方法中定义标签声明,在任何不会覆盖值的地方提供值。

我已经尝试了它并且它正在工作,但仍然感谢所有为我提供帮助的人