2014-07-23 2 views
2

"우주선"위에 스프라이트 "빛"을 추가하려고합니다. 아래에서 볼 수 있듯이 나는 우주선의 자식으로 빛을 추가했습니다. 그러나 아래 그림에서 보듯이 빛은 우주선 아래에 나타납니다. 아무도 왜 이것이 일어나고 있는지, 그리고 어떻게 해결할 수 있습니까?상위 아래에 나타나는 자식 스프라이트

- (void)newSpaceshipAtLocation:(CGPoint)location{ 
SKSpriteNode *hull = [[SKSpriteNode alloc]initWithImageNamed:@"Spaceship"]; 

hull.position = location; 
hull.name = @"Spaceship"; 
hull.scale = 0.5; 

SKSpriteNode *light = [self lights]; 
light.position = CGPointMake(hull.size.width/5.0, hull.size.height/5.0); 
[hull addChild:light]; 

[self addChild:hull]; 
} 

- (SKSpriteNode *)lights{ 
SKSpriteNode *light = [[SKSpriteNode alloc]initWithColor:[NSColor yellowColor] size:CGSizeMake(50.0, 50.0)]; 

SKAction *blink = [SKAction sequence:@[ 
             [SKAction fadeOutWithDuration:0.5], 
             [SKAction fadeInWithDuration:0.5], 
             ]]; 
[light runAction:[SKAction repeatActionForever:blink]]; 
light.name = @"light"; 

return light; 
} 

Yellow light under the spaceship

+0

사진을 잊어 버렸습니다. – RaffAl

+0

@reecon 여기에 사진을 직접 업로드 할 수는 없습니다. 평판이 충분하지 않기 때문입니다. 아래 링크에 있습니다. – user14492

+0

Yeap, 알겠습니다. 나는 그림에 대한 링크를 놓쳤다. 죄송합니다. – RaffAl

답변

1

lightzPosition 속성을 설정하십시오. hull 스프라이트보다 높은 값으로 설정하면 정상적으로 작동합니다.

+0

감사합니다. 문제가 해결 된 것 같습니다. 그러나, 나는 아직도 그것이 작동하지 않는 이유를 이해하고 싶습니다. 설명 할 수 있다면 멋질 것입니다. – user14492

+0

흠 ... 잘 모르겠습니다. 위치를 설정하는 방식에 재미있는 것이 있지만. 'hull'의 스케일은 실제로 스프라이트의 프레임에 영향을주지 않습니다. 당신이 우주선 물체 전체를 만들고 있다면, 아마도'선체 '아래에 나타나는'빛 '은 실제로 다른 선체의'빛 '입니다. 말이 돼? – doctorBroctor

관련 문제