我知道有SKCropNode
,但它只会根据maskNode
的阿尔法阈值完全排除或排除像素。我已经尝试使用SKEffectNode
和CIBlendWithAlphaMask
过滤器,但是我得到的结果是不可见的,我也不确定如何移动蒙版。下面的代码:如何alpha遮罩SKSpriteNode?
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];
我已经想通了完美的解决方案,使用SKLightNode
照亮纹理,然后将其融入使用SKBlendModeAdd
帧缓冲,但由于某种原因,它不会在iPhone 5的工作( here's a related topic)。我也知道this topic,这也没有帮助。
任何解决方案,以正确的alpha掩码SKSpriteNode
将不胜感激! 正在运行iOS 8.
CIImage是零,它现在掩盖,但我仍然不知道如何移动面具... – Larry 2014-09-19 07:53:35
你有没有想过这个? – nekonari 2016-05-21 20:42:01