【发布时间】:2013-02-17 20:08:13
【问题描述】:
我很好奇是否有人知道一种已经实现的模糊整个 CCLayer 的方法。我使用一个简单的 CCLayerColor 设置为黑色,有点不透明度,但我希望能够将背景模糊到无法区分的斑点。
【问题讨论】:
标签: cocos2d-iphone
我很好奇是否有人知道一种已经实现的模糊整个 CCLayer 的方法。我使用一个简单的 CCLayerColor 设置为黑色,有点不透明度,但我希望能够将背景模糊到无法区分的斑点。
【问题讨论】:
标签: cocos2d-iphone
您可以使用 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];
}
【讨论】:
难道你不能只创建一个半透明的小图块,其中包含一些噪点,然后创建一个覆盖屏幕的精灵,其中设置了纹理参数以重复它吗?
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:¶ms];
[self addChild:blurSprite];
我的这些参数可能略有错误,但它应该给出大致的想法。
【讨论】: