SKSpriteKit混合目标alpha

时间:2014-02-08 21:45:16

标签: 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(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覆盖的区域上获得绿色,因为我设置了混合模式SKBlendModeSubtract,这会导致目标alpha在混合后为0.0。 我需要帮助才能得到它或者它不能按预期工作的原因? 提前致谢

1 个答案:

答案 0 :(得分:1)

“减去”混合模式减去颜色值,而不是Alpha值。你看到的交叉点应该是黑色的,因为交点的颜色是(1,0,0) - (1,0,0)=(0,0,0)。

您正在寻找的是图层蒙版。 SKCropNode这样做,但也许不是你想要的方式。您可能需要查看其中一个问题以获得一些想法:Animate masked image in SpriteKit (SKCropNode)Is it possible to use a circle (SKShapeNode) as a mask in Sprite Kit?