模糊CCLayerColor(用于暂停菜单)

时间:2013-02-17 20:08:13

标签: cocos2d-iphone

我很好奇是否有人知道已经实现的模糊整个CCLayer的方法。我使用一个简单的CCLayerColor设置为黑色,有一点不透明度,但我希望能够模糊背景足以成为难以区分的blob。

2 个答案:

答案 0 :(得分:0)

您可以使用CCLayerColor执行此操作。

-(void)fadeBackground
{
    ccColor4B color = {0,0,0,255};
    CCLayerColor *fadeLayer = [CCLayerColor layerWithColor:color];
    [self addChild:fadeLayer z:7];
    fadeLayer.opacity = 0;

    id fade   = [CCFadeTo actionWithDuration:1.0f opacity:160];//200 for light blur
    id calBlk = [CCCallBlock actionWithBlock:^{
        //show pause screen buttons here 
        //[self showPauseMenu];
    }];
    id sequen = [CCSequence actions:fade, calBlk, nil];

    [fadeLayer runAction:sequen];
}

答案 1 :(得分:0)

难道你不能创建一个半透明的小瓷砖,里面有一些噪音,并创建一个覆盖屏幕的精灵,其中纹理参数设置为重复吗?

CCSprite *blurSprite = [CCSprite spriteWithFile:@"blurtile.png" rect:CGRectMake(0, 0, 1024, 768)];
blurSprite.position = ccp(512,384);
ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
[blurSprite .texture setTexParameters:&params];
[self addChild:blurSprite];

我可能会将这些参数略微错误,但它应该提供一般性的想法。