出现在父级下方的子精灵

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 实际上是来自另一个hulllight。这有意义吗?

以上是关于出现在父级下方的子精灵的主要内容,如果未能解决你的问题,请参考以下文章

Swift SpriteKit:翻转父精灵随机子节点水平对齐

在父级为表单的子报表中滚动

利用按键精灵,把数据从excel自动填写到web网页上,应该怎么写

按键精灵,父窗口下很多子窗口怎么找想要的

pyqt - 将来自 qt 设计器的子小部件定位在父级附近

前端的精灵图制作以及精灵图定位