更改屏幕上所有内容的颜色 - Cocos2d

问题描述:

我有一个暂停按钮/方法(不是最好的,但它的工作原理)。目前,我正在改变屏幕上所有东西的不透明度,当它暂停时,这不是我想要做的,但它起作用(并且是一种痛苦)。有没有人有更好的方法同时改变屏幕上的所有东西的亮度?更改屏幕上所有内容的颜色 - Cocos2d

E.G. 当你暂停“愤怒的小鸟”(只有我现在可以想到的游戏)主场景上有一个透明的黑色覆盖。

这里是我的代码

-(void) Pause:(ccTime)delta 
{ 
    Bag.opacity = 150; 
    ScoreH.opacity = 150; 
    TimerH.opacity = 150; 
    leftB.opacity = 150; 
    rightB.opacity = 150; 
    bg.opacity = 150; 
    scoreLabel.opacity = 150; 
    timeLabel.opacity = 150; 

    [[CCDirector sharedDirector] pause]; 

    CCLOG(@"Game Paused"); 
} 

而且,我的大部分精灵都来自精灵表。我不知道这是否有帮助。 任何帮助,不胜感激。提前致谢!

哇...我一直在寻找这个问题的答案约一个月,右后,我问这个问题,我决定再次搜索和...我找到它。

请原谅我的愚蠢......

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 100)]; 
[self addChild:colorLayer z:0]; 

的前三个数字是“RBG”的色彩,最后一个数字是不透明度。

+0

将叠加在所有内容上并将它的动画制作为0.0到1.0的alpha并将其设置为动画效果并且只选择白色?还是黑色? – 2011-05-08 16:31:13

+0

这是个不错的主意,但CCLayerColor可以很好地工作,并且可以通过“colorLayer.visible = NO;”轻松隐藏。它也有改变不透明度的能力。 – Jonathan 2011-05-08 16:35:30

+0

啊,我看,很好。请将您的解决方案作为答案发布,并在24小时内自行接受。 – 2011-05-08 16:43:18

为了把一个颜色叠加上一层只需添加的顶部..

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 128)]; 
[self addChild:colorLayer z:0]; 

的前三个数字是“RGB”的色彩,最后一个数字是不透明度。每个可以具有在0和255之间的范围内的值。

E.G.

layerWithColor:ccc4(Red, Green, Blue, Opacity) 
+0

+1简单而有效。关于这个技巧的一个很酷的事情是,你可以通过将一些精灵/节点放在CCLayerColor顶层的图层中来排除一些精灵/节点的颜色。 – Lukman 2011-10-18 09:35:43