Cocos2d CCLabel更新分数问题

时间:2010-10-28 01:35:09

标签: iphone cocos2d-iphone

我正在使用两个调用setScore,它们在init方法和UpdateScore中销毁一个对象。当我运行程序时,一旦调用UpdateScore,我就会崩溃。有人看到我的代码有错误吗?非常感谢你。

在我的.h文件中,我有CCLabel *分数;和NSString *文本;宣布供全球使用。

-(void)setScore{

 scorE = 1;

 text = [[NSString alloc] initWithFormat:@"%d", scorE];

 score = [CCLabel labelWithString:text fontName:@"Marker Felt" fontSize:18];

 score.position = ccp(45, 310);

 [self addChild: score];
}

-(void)UpdateScore{

 scorE++;

 NSLog(@"score +1");

 [score setString: [NSString stringWithFormat:@"%d",scorE]];

}

1 个答案:

答案 0 :(得分:1)

当您使用CCLabel的类方法时,可能会自动释放您的分数对象。尝试使用以下选项:

1)score = [[CCLabel labelWithString:text fontName:@"Marker Felt" fontSize:18] retain]; 2)score = [[CCLabel alloc] initWithString:text fontName:@"Marker Felt" fontSize:18];

不要忘记在你的dealloc(或任何需要的地方)释放你的分数对象。