我知道有SKCropNode
,但它只会根据 的 alpha 阈值完全输入或排除像素maskNode
。我已经尝试过使用SKEffectNode
过滤CIBlendWithAlphaMask
器,但我得到的结果是不可见的,我也不确定如何移动面具。这是代码:
SKSpriteNode* overlay = [SKSpriteNode spriteNodeWithImageNamed:@"Overlay.png"];
//...
SKEffectNode* blendNode = [[SKEffectNode alloc] init];
blendNode.filter = [CIFilter filterWithName:@"CIBlendWithAlphaMask"];
UIImage* maskImage = [UIImage imageNamed:@"MaskImage.png"];
[blendNode.filter setValue:[maskImage CIImage] forKey:@"inputMaskImage"];
[blendNode addChild:overlay];
[self addChild:blendNode];
我已经找到了完美的解决方案,使用 aSKLightNode
来点亮纹理,然后使用 将其混合到帧缓冲区中SKBlendModeAdd
,但由于某种原因,它在 iPhone 5 上不起作用(这里有一个相关主题)。我也知道这个话题,这也没有帮助。
任何正确 alpha-mask a 的解决方案SKSpriteNode
将不胜感激!运行 iOS 8。