Cocos2D iPhone - исчезают из спрайта, оставляя мусор - PullRequest
1 голос
/ 15 февраля 2012

Я создал спрайт, и внутри этого спрайта у меня есть метка, подобная этой.

CCLabelTTF *myLabel = [CCLabelTTF 
                        labelWithString:text
                        dimensions:CGSizeMake(mySpriteWidth*0.9, mySpriteHeight*0.9) 
                        alignment:UITextAlignmentCenter 
                        fontName:@"Helvetica Neue" fontSize:20.0f];

[myLabel setPosition: CGPointMake((mySpriteWidth/2.0f),(mySpriteHeight/2.0f))];
[mySprite addChild: myLabel];

, как вы видите, эта метка является дочерней для mySprite.

Затем я исчезаюспрайт с помощью этого действия

id fadeOut = [CCFadeOut actionWithDuration:0.4];

Спрайт исчезает правильно, но ярлык продолжает там, высокомерно смотрит на меня ...

это ошибка или я что-то упустил?Спасибо


код, который я использую для фейдера:

    CCSequence *sequence =[CCSequence actions:
                            fadeIn,
                            [CCDelayTime actionWithDuration:2.5],
                            fadeOut,
                            nil];


    [mySprite runAction:sequence];
//    [myLabel runAction:sequence];

добавление действия к метке, оно исчезает, но затем спрайт остается на экране...: (

1 Ответ

0 голосов
/ 15 февраля 2012

Вы должны удалить спрайт после завершения исчезновения. когда он будет удален, если вы не собираетесь использовать его снова. или, если хотите, переключите его видимость.

Я не на 100% уверен, что затухание отразится на его внутренних взглядах. это влияет на объекты, которые наследуются от CCRGBAProtocol

CCFadeout reference

это должно как минимум обойти тебя. если вы хотите, чтобы метка исчезла, вы также можете получить доступ к метке с помощью getChildByTag, чтобы придать ей эффект исчезновения.

Но вам нужно будет создать новый эффект затухания, способ, которым действия реализованы в кокосах, состоит в том, что 2 объекта могут запускать одно и то же действие, последнее будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...