0

我有一个我喜欢添加到场景中的标签,

     -(id) init{
     yourScore=[CCLabelTTF labelWithString:@"0" dimensions:CGSizeMake(50, 30) alignment:UITextAlignmentCenter fontName:@"Marker Felt" fontSize:20];        
    yourScore.position=ccp(230, 250);
    [self addChild:yourScore];}

但是,如果我将 CCLabel 添加到其他地方,例如

    -(void) addlabel:(NSString*) string_
       { yourScore=[CCLabelTTF labelWithString:@"0" dimensions:CGSizeMake(50, 30) alignment:UITextAlignmentCenter fontName:@"Marker Felt" fontSize:20];        
    yourScore.position=ccp(230, 250);
    [self addChild:yourScore];}

正在调用此 addlabel 函数来添加标签。现在 youScore 标签没有显示在游戏中。这让我想知道为什么需要在 -(id) init 函数中添加以使其显示?

4

1 回答 1

0

如果我没记错的话,当你初始化一个空的 CCNode 时,它​​的 contentSize 是 0,0 并且在添加子节点后它会保持这种状态。

你能检查这两种情况下 CCScene 的 contentSize 吗?

如果不同,您可以为标签使用不同的位置,或者在添加任何子项之前更好地手动更改场景的 contentSize。就个人而言,我更喜欢将 contentSize 设置为屏幕的大小

顺便说一句,您也应该在 init 主体中调用 [super init]

于 2012-08-17T07:03:06.843 回答