Ios 如何对一个SKSpriteNode进行alpha屏蔽?
我知道有Ios 如何对一个SKSpriteNode进行alpha屏蔽?,ios,iphone,sprite-kit,mask,skeffectnode,Ios,Iphone,Sprite Kit,Mask,Skeffectnode,我知道有SKCropNode,但它只会基于maskNode的alpha阈值完全进入或排除像素。我已经尝试过将SKEffectNode与CIBlendWithAlphaMask过滤器一起使用,但是我得到的结果是不可见的,我也不确定如何移动掩码。代码如下: SKSpriteNode* overlay = [SKSpriteNode spriteNodeWithImageNamed:@"Overlay.png"]; //... SKEffectNode* blendNode = [[SKEffectN
SKCropNode
,但它只会基于maskNode
的alpha阈值完全进入或排除像素。我已经尝试过将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上无法工作()。我也知道,这也没用
如能提供任何适当的阿尔法屏蔽aSKSpriteNode
的解决方案,我们将不胜感激!
运行iOS 8。使用动态生成的
CIImage
作为掩码。它可以由CIFilter创建,使用您需要的任何渐变或图像作为掩码,并将inputCenter
属性设置为您想要的位置 CIImage是零,现在它是面具,但我仍然不知道如何移动面具…你有没有想过?