2

如果选择了一个节点,我想显示一个效果节点。如果没有,我想关闭/删除该效果。(我将一个节点设置为在 中选择的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];
4

1 回答 1

2
theEffectNode.shouldEnableEffects = NO;
于 2014-07-10T22:44:15.493 回答