0

我得到了一个带有顶部 z-index 图层的场景,其中一个为整个场景添加了黑暗效果,设置了它的不透明度。我现在要做的是去除图像显示的混凝土区域(圆锥体/三角形内)中的阴影/黑暗效果(红色多边形内)。换句话说,我希望在三角形内部具有与屏幕左侧相同的“亮度”(零不透明度)。

在此处输入图像描述

代码:

-(id) init
{
if( (self=[super initWithColor:ccc4(0,0,0,128)] )) {
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    CCLayerColor* layer1 = [CCLayerColor layerWithColor: ccc4(0, 0, 0, 180) width: winSize.width height: winSize.height];
    layer1.position = ccp(50,0);
    [self addChild: layer1 z:2];

    CCSprite *background = [CCSprite spriteWithFile:@"background.png"];
    background.position = ccp(background.contentSize.width/2, background.contentSize.height/2);
    [self addChild:background];

    CCSprite *player = [CCSprite spriteWithFile:@"Player.png"rect:CGRectMake(0, 0, 27, 40)];
    player.position = ccp(player.contentSize.width/2, winSize.height/2);
    [self addChild:player];     
}
return self;
}

关于如何做到这一点的任何想法?也许我应该尝试用另一种方式来做,而不是使用 CCLayer 来添加黑暗效果??

提前致谢

4

1 回答 1

0

最简单的方法是使用带有背景大小的黑色图像的 CCSprite。然后在图像程序中剪下您需要的整体,并在背景上绘制该精灵并降低不透明度。

于 2012-09-19T00:09:20.737 回答