改变屏幕上的一切颜色 - Cocos2d

Jon*_*han 1 iphone cocos2d-iphone

我有一个暂停按钮/方法(不是最好的,但它的工作原理).目前,我改变屏幕上一切的不透明度时,暂停这不是我想要做的,但它的工作原理(并且是疼痛).有没有人有更好的方法同时改变屏幕上所有内容的亮度?

EG当你暂停"愤怒的小鸟"(目前只能想到的游戏)时,主场景上有一个透明的黑色覆盖层.

这是我的代码

-(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");
}
Run Code Online (Sandbox Code Playgroud)

此外,我的大部分精灵都来自精灵表.我不知道这是否有帮助.任何帮助是极大的赞赏.提前致谢!

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

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

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 100)];
[self addChild:colorLayer z:0];
Run Code Online (Sandbox Code Playgroud)

前三个数字是"RBG"颜色,最后一个数字是不透明度.

Jon*_*han 6

要将颜色叠加层放在图层顶部,只需添加..

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 128)];
[self addChild:colorLayer z:0];
Run Code Online (Sandbox Code Playgroud)

前三个数字是"RGB"颜色,最后一个数字是不透明度.每个都可以具有0到255之间的值.

例如

layerWithColor:ccc4(Red, Green, Blue, Opacity)
Run Code Online (Sandbox Code Playgroud)