cocos2D CCLayer или CCLayerColor setOpacity - PullRequest
2 голосов
/ 03 февраля 2012

Я пытаюсь анимировать непрозрачность CCLayerColor и он не работает.Вот мои усилия до сих пор.Я определил retryMenuLayer в .h как

CCLayerColor *retryMenuLayer;

и в .m файле

retryMenuLayer = [CCLayerColor node];
[self addChild:retryMenuLayer z:5];

retryMenuLayer.scale = 0.5;
[retryMenuLayer setOpacity:0];

и в появившемся методе я вызываю это.

[retryMenuLayer runAction:[CCFadeIn actionWithDuration:1]];

//OR

[retryMenuLayer setOpacity:255];

Что происходит, так это то, что фон retryMenuLayer анимируется с прозрачного на сплошной черный, но содержимое внутри (его дочерние элементы - меню с кнопками) не анимируется.На самом деле я должен использовать свойство видимости, чтобы хотя бы исчезнуть, пока метод не будет вызван.

retryMenuLayer.visible = NO; // When initiating.
retryMenuLayer.visible = YES; // When need to appear the layer.

Ответы [ 2 ]

4 голосов
/ 29 ноября 2012

Для прозрачности в CCLayerColor я использую

    CCLayerColor *_shadowLayer = [CCLayerColor layerWithColor: ccc4(0,0,0, 100)];

для прозрачного черного цвета.

Чтобы сделать это FadeIn, это должно работать:

CCLayerColor _shadowLayer = [CCLayerColor layerWithColor: ccc4(0,0,0, 0)];
[_shadowLayer setContentSize: CGSizeMake(_winSize.width, _winSize.height)];
_shadowLayer.anchorPoint = ccp(0.0f, 0.0f); 
_shadowLayer.position = ccp(0, 0);

[self addChild: _shadowLayer];

[_shadowLayer runAction: [CCFadeTo actionWithDuration:1.5f opacity:100]];

Обратите внимание, что я добавил теневой слой к self, который является моим собственным настроенным слоем. Если бы я добавил его к спрайту, который исчез, непрозрачность не проникает в теневой слой. Кажется, что есть обходной путь для этого пользователя "aerostat" в по ссылке в ответе qklxtlx , хотя.

3 голосов
/ 15 июля 2012

CCLayer не имеет прозрачности. Пожалуйста, обратитесь к этому http://www.cocos2d -iphone.org / форум / тема / 5088

...