Ios SKSpriteKit混合目的地阿尔法

Ios SKSpriteKit混合目的地阿尔法,ios,sprite-kit,Ios,Sprite Kit,以下是SKScene构造函数中的源代码: self.backgroundColor = [SKColor greenColor]; SKSpriteNode* sprite1 = [[SKSpriteNode alloc] initWithColor: [SKColor colorWithRed: 0.5 green:0.5 blue:0.5 alpha:1.0] size: CGSizeMake(500.0, 500.0)]; sprite1.position = CGPointMake(CG

以下是SKScene构造函数中的源代码:

self.backgroundColor = [SKColor greenColor];
SKSpriteNode* sprite1 = [[SKSpriteNode alloc] initWithColor: [SKColor colorWithRed: 0.5 green:0.5 blue:0.5 alpha:1.0] size: CGSizeMake(500.0, 500.0)];
sprite1.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild: sprite1];

SKSpriteNode* sprite2 = [[SKSpriteNode alloc] initWithColor: [SKColor colorWithRed: 1.0 green:1.0 blue:1.0 alpha: 1.0] size: CGSizeMake(100.0, 100.0)];
sprite2.blendMode = SKBlendModeSubtract;
[sprite1 addChild: sprite2];
我希望在sprite2覆盖的区域上显示绿色,因为我设置了混合模式skblendModesSubtract,这将导致混合后目标alpha为0.0。 我需要帮助才能得到它,或者它不能按预期工作的原因?
提前感谢

减去混合模式减去颜色值,而不是alpha值。您看到的交点应为黑色,因为交点的颜色为(1,0,0)-(1,0,0)=(0,0,0)


你要找的是图层蒙版。这样做,但可能不是你想要的方式。您可能需要查看以下问题之一以获得一些想法:,

裁剪节点有问题。如果我想保留sprite1,我需要一个所有像素都具有非零alpha的遮罩,sprite2覆盖的区域除外。我可以制作这样一个图像,问题是sprite2可以通过用户触摸来移动,它的轨迹必须是透明的,并且具有场景的颜色。在每帧生成图像会带来帧速率问题。也许我应该使用CGLayer?是否有混合模式会影响alpha?如果我通过OpenGL做的话就可以了。