Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何对一个SKSpriteNode进行alpha屏蔽?_Ios_Iphone_Sprite Kit_Mask_Skeffectnode - Fatal编程技术网

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上无法工作()。我也知道,这也没用

如能提供任何适当的阿尔法屏蔽a
SKSpriteNode
的解决方案,我们将不胜感激!
运行iOS 8。

使用动态生成的
CIImage
作为掩码。它可以由CIFilter创建,使用您需要的任何渐变或图像作为掩码,并将
inputCenter
属性设置为您想要的位置

CIImage是零,现在它是面具,但我仍然不知道如何移动面具…你有没有想过?