2014-07-10 2 views
2

노드가 선택되면 효과 노드를 표시하려고합니다. 그렇지 않은 경우 해당 효과를 끄거나 제거하고 싶습니다. (touchesBegan에서 선택한 노드를 설정합니다.)SKNode의 SKEffectNode를 올바르게 켜고 끄는 방법은 무엇입니까?

아래 코드를 사용합니다. 효과 노드를 켜고 끄는 것은 주 노드를 효과 노드에 추가하기 때문에 마음이 뜨겁습니다. 주 노드도 잃지 않고 어떻게 끄어야합니까? 효과의 색깔을 투명하게 바꾸어 그것을 숨길 수는 있지만 올바른 방법처럼 들리지는 않습니다 ... 주 노드를 효과 노드에서 부모 노드로 옮길 수는 있지만 다시 위치를 바꿔야합니다. 올바른 방법으로 소리가 나지 않습니다 ..

올바른 방법 중 하나는 무엇입니까? (정확한 = 복잡성을 증가시키지 않으면 서 성능을 향상 시킴)

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]; 

답변

2
theEffectNode.shouldEnableEffects = NO; 
관련 문제