出现在父级下方的子精灵
Posted
技术标签:
【中文标题】出现在父级下方的子精灵【英文标题】:Child Sprite appearing under the parent 【发布时间】:2014-07-23 18:12:20 【问题描述】:我只是想在“宇宙飞船”之上添加一个精灵“光”。所以你可以在下面看到,我添加了光作为宇宙飞船的子元素,然而,光出现在宇宙飞船的下方,如下图所示。谁能告诉我为什么会这样,我该如何解决?
- (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;
【问题讨论】:
你忘记了图片。 @reecon 我这里不能直接上传图片,因为我没有足够的声望。它在下面的链接中。 是的,明白了。我错过了图片的链接。对不起。 尝试在[self addChild:hull];
之后调用[hull addChild:light];
@akashg 已经这样做了,没有任何改变。
【参考方案1】:
尝试在light
上设置zPosition
属性。如果您将其设置为高于 hull
精灵的任何值,它应该可以工作。
【讨论】:
谢谢,这似乎解决了问题。虽然,我仍然想了解为什么它以前不起作用。如果你能解释一下,那就太好了。 嗯...不太确定。尽管您设置位置的方式有些有趣。hull
的比例实际上并不影响精灵的帧。如果您正在创建一大堆船舶对象,那么显示在hull
下方的light
实际上是来自另一个hull
的light
。这有意义吗?以上是关于出现在父级下方的子精灵的主要内容,如果未能解决你的问题,请参考以下文章
Swift SpriteKit:翻转父精灵随机子节点水平对齐