更改屏幕上所有内容的颜色 - 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”的色彩,最后一个数字是不透明度。
答
为了把一个颜色叠加上一层只需添加的顶部..
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
将叠加在所有内容上并将它的动画制作为0.0到1.0的alpha并将其设置为动画效果并且只选择白色?还是黑色? – 2011-05-08 16:31:13
这是个不错的主意,但CCLayerColor可以很好地工作,并且可以通过“colorLayer.visible = NO;”轻松隐藏。它也有改变不透明度的能力。 – Jonathan 2011-05-08 16:35:30
啊,我看,很好。请将您的解决方案作为答案发布,并在24小时内自行接受。 – 2011-05-08 16:43:18