【问题标题】:cocos2D CCLayer or CCLayerColor setOpacitycocos2D CCLayer 或 CCLayerColor setOpacity
【发布时间】:2012-02-03 08:00:37
【问题描述】:

我正在尝试为 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 的背景从透明变为纯黑色动画,但里面的内容(它的子项 - 带有按钮的菜单)没有动画。事实上,我必须使用可见性属性至少在方法被调用之前消失。

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

【问题讨论】:

  • 您预计会发生什么?发生了什么?

标签: ios cocos2d-iphone opacity layer


【解决方案1】:

为了提高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”似乎有一个解决方法。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多