【问题标题】:Blur a CCLayerColor (for pause menu)模糊 CCLayerColor(用于暂停菜单)
【发布时间】:2013-02-17 20:08:13
【问题描述】:

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

【问题讨论】:

标签: cocos2d-iphone


【解决方案1】:

您可以使用 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];
}

【讨论】:

    【解决方案2】:

    难道你不能只创建一个半透明的小图块,其中包含一些噪点,然后创建一个覆盖屏幕的精灵,其中设置了纹理参数以重复它吗?

    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];
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多