5

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

4

2 回答 2

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];
}
于 2013-02-18T05:38:30.773 回答
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];

我可能有这些参数略有错误,但它应该给出一般的想法。

于 2013-06-13T02:13:39.327 回答