Cocos2d iphone Cocos2D-删除区域上的图层不透明度

Cocos2d iphone Cocos2D-删除区域上的图层不透明度,cocos2d-iphone,opacity,layer,region,cut,Cocos2d Iphone,Opacity,Layer,Region,Cut,我得到了一个具有顶部z索引的层的场景,其中一个将暗效果添加到整个场景中,设置其不透明度。我现在要做的是去除一个具体区域(在圆锥体/三角形内)的阴影/黑暗效果,如图所示(在红色多边形内)。换句话说,我希望三角形内部的“亮度”(不透明度为零)与屏幕左侧相同 代码: 你知道怎么做吗??也许我应该试着在另一个捕鲸场上做,而不是用CCLayer来增加黑暗效果 提前感谢最简单的方法是使用背景大小的黑色图像的CCSprite。然后在图像程序中剪切出所需的整体,并在背景上以较低的不透明度绘制该精灵。该想法是模

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

代码:

你知道怎么做吗??也许我应该试着在另一个捕鲸场上做,而不是用CCLayer来增加黑暗效果


提前感谢

最简单的方法是使用背景大小的黑色图像的CCSprite。然后在图像程序中剪切出所需的整体,并在背景上以较低的不透明度绘制该精灵。

该想法是模拟灯光,因此将使用代码和坐标创建切割三角形,以将效果放置在场景中,因此我理解您的想法是创建一个切割区域静止的精灵。也许通过某种渲染,这是可能的??
-(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;
}