我知道有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