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 に答える