SKCropNode无法使用过滤器裁剪子SKEffectNode

时间:2015-04-08 08:02:10

标签: ios sprite-kit crop

也许这很有意义,但我注意到如果你有一个SKEffectNode作为SKCropNode的子节点,那么如果所说的SKEffectNode将其过滤器设置为某个东西,则裁剪根本不起作用。

具体来说,我在SKEffectNode上使用了一个模糊CIFilter。我在游戏中制作了一个切换按钮,因此我可以打开/关闭模糊效果,而且很明显SKCropNode可以裁剪模糊的东西。我想知道这是否也适用于大多数/所有其他CIFilter。

顺便说一下,我打开模糊的方式是这样的:

SKEffectNode* nodetoblur = [self thenodetoblur];
CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur" keysAndValues:@"inputRadius", @10.0f, nil];
nodetoblur.filter = blur;
nodetoblur.shouldEnableEffects = YES;

关闭:

SKEffectNode* nodetoblur = [self thenodetoblur];
nodetoblur.filter = nil;
nodetoblur.shouldRasterize = NO;
nodetoblur.shouldEnableEffects = NO;

任何人都可以解释SKCropNode效率低下的理论,可能还有解决方法吗?

...也许我应该制作SKEffectNode的SKCropNode子节点,而不是(当前的)其他方式。

更新:罪魁祸首似乎是在shouldEnableEffects设置为YES的情况下创建了SKEffectNode。它必须设置为NO,否则SKCropNode无法裁剪SKEffectNode。

0 个答案:

没有答案