如何将 sub-child 添加到 swift 中自己的 child

How to add sub-child to a child of self in swift

我试图在 swift 中添加两个 SKSpriteNodes 及其各自的纹理,但是 "Blade" 在模拟过程中没有出现在屏幕上。不过,我可以毫不费力地让 "Handle" 出现。所以我的问题是,在 swift 中添加一个 child of a child of self 的正确方法是什么,以便一切都按预期工作?

    var Handle = SKSpriteNode(imageNamed: "Handle.png")
    var Blade = SKSpriteNode(imageNamed: "Blade.png") 

    override func didMoveToView(view: SKView) {
    Handle.position = CGPointMake(self.size.width / 2, self.size.height / 14)
    Blade.position = CGPointMake(Handle.position.x, Handle.position.y + 124)

    self.addChild(Handle)
    Handle.addChild(Blade)
}

这应该会让您接近预期的结果。

Blade.position = CGPointMake(0, 124)

请记住,当您将精灵添加到另一个精灵时,位置就是那个精灵的位置 "within"。如果您不更改从其 parent 中心开始的锚点。因此,您从 Handle 的中心开始并添加了场景宽度的一半。因为 Handle 已经在场景中居中 blade 不在场景中。

希望这说得通并且有所帮助。

另外,正如 lchamp 提到的,您应该降低驼峰式大小写

var Blade = SKSpriteNode(imageNamed: "Blade.png") 

这将有助于您将来识别 类 与变量。