cocos2D CCLayer或CCLayerColor setOpacity

时间:2012-02-03 08:00:37

标签: ios cocos2d-iphone opacity layer

我正在尝试为CCLayerColor的不透明度制作动画,但它不起作用。到目前为止,这是我的努力。我已经在.h中定义了retryMenuLayer

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的背景是从透明到纯黑的动画,但内部的内容(它的子节点 - 带按钮的菜单)没有动画。事实上,在调用方法之前,我必须使用visibility属性至少消失。

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

2 个答案:

答案 0 :(得分:4)

对于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,这是我自己的自定义图层。如果我将它添加到淡入的精灵中,不透明度不会拉到阴影层。但是the link in qklxtlx's answer中的用户“aerostat”似乎有一个解决方法。

答案 1 :(得分:3)

CCLayer没有不透明度。请参阅此http://www.cocos2d-iphone.org/forum/topic/5088