如何正确打开和关闭SKNode的SKEffectNode?

时间:2014-07-10 21:15:28

标签: ios objective-c sprite-kit skeffectnode

如果选择了节点,我想显示效果节点。如果没有,我想关闭/删除该效果。 (我在touchesBegan中设置了一个节点。)

我使用下面的代码。打开和关闭效果节点是我的想法,因为我将主节点添加到效果节点。如何在不丢失主节点的情况下将其关闭?我可以将效果的颜色更改为透明以隐藏它但它听起来不是正确的方法...将主节点从效果节点移动到效果节点的父节点可能会起作用但我必须重新定位它以便它听起来也不是正确的方式......

这样做的正确方法之一是什么? (正确=有利于提高性能,同时不会增加编码复杂性)

SKShapeNode* tile = [SKShapeNode node];
[tile setPath:CGPathCreateWithRoundedRect(CGRectMake(0, 0, 60, 100), 4, 4, nil)];
tile.strokeColor = tile.fillColor = [UIColor colorWithRed:0.0/255.0
                                                        green:128.0/255.0
                                                         blue:255.0/255.0
                                                        alpha:1.0];
tile.position = CGPointMake(10, 100);

SKEffectNode *effectNode = [[SKEffectNode alloc] init];
GlowFilter *glowFilter = [[GlowFilter alloc] init];
[glowFilter setGlowColor:[[UIColor yellowColor] colorWithAlphaComponent:1]];
[effectNode setShouldRasterize:YES];
[effectNode setFilter:glowFilter];
effectNode.position=CGPointMake(0, 0);
[effectNode addChild:tile];

[self addChild:effectNode];

1 个答案:

答案 0 :(得分:2)

theEffectNode.shouldEnableEffects = NO;