2

ノードが選択されている場合、エフェクト ノードを表示したい。そうでない場合は、その効果をオフ/削除したいです。(ノードを で選択した状態に設定しますtouchesBegan。)

以下のコードを使用します。メイン ノードをエフェクト ノードに追加するため、エフェクト ノードのオンとオフを切り替えると頭が混乱します。メインノードも失わずにオフにするにはどうすればよいですか? エフェクトの色を透明に変更して非表示にすることはできますが、うまくいきません... メイン ノードをエフェクト ノードからエフェクト ノードの親に移動するとうまくいくかもしれませんが、再配置する必要があります。正しい方法のようにも聞こえます..

これを行う正しい方法の1つは何ですか? (正しい = コーディングの複雑さを増加させずにパフォーマンスを向上させる)

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