如何在swift中将子项添加到自我的子项

如何在swift中将子项添加到自我的子项,swift,sprite-kit,skspritenode,addchild,Swift,Sprite Kit,Skspritenode,Addchild,我试图在swift中添加两个具有各自纹理的SKSpriteNodes,但是在模拟过程中,“刀刃”不会显示在屏幕上。不过,要让“手柄”出现,我没有任何问题。所以我的问题是,在swift中添加一个自我之子的正确方法是什么,以便一切都按预期进行 var Handle = SKSpriteNode(imageNamed: "Handle.png") var Blade = SKSpriteNode(imageNamed: "Blade.png") override func

我试图在swift中添加两个具有各自纹理的SKSpriteNodes,但是在模拟过程中,“刀刃”不会显示在屏幕上。不过,要让“手柄”出现,我没有任何问题。所以我的问题是,在swift中添加一个自我之子的正确方法是什么,以便一切都按预期进行

    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)
请记住,当您将一个精灵添加到另一个精灵时,该位置就是该精灵的“内部”位置。如果不更改从其父对象中心开始的锚点。因此,您从控制柄的中心开始,添加场景的一半宽度。因为控制柄已经在场景中居中,所以刀片离开了场景

希望这是有意义的,是有帮助的

正如lchamp提到的,您应该降低成本

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

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

您可以尝试这样做:
Blade.position=CGPointMake(Handle.frame.width/2,Handle.frame.height/2)
。它应该出现在控制柄节点的中心。只是想看看:如果你把刀片放得太远,刀片会正确显示,…)。PS:您应该为变量
Blade采用lowerCamelCase语法。position=CGPointZero
将刀片放置在与
Handle
相同的位置,因为子节点的位置相对于其父节点。是!非常感谢。你所做的工作做得很好。谢谢你的帮助