があることは知ってSKCropNode
いますが、のアルファしきい値に基づいてピクセルを完全にインまたは除外するだけ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];
SKLightNode
を使用してテクスチャを照らし、それを を使用してフレームバッファにブレンドするという完璧な解決策をすでに見つけていましたSKBlendModeAdd
が、何らかの理由で iPhone 5 では機能しません (関連トピックはこちら)。私もこのトピックを認識していますが、どちらも役に立ちませんでした。
aを適切にアルファマスクするための解決策は大SKSpriteNode
歓迎です! iOS 8 を実行しています。