Sprite Kit:看不到现有节点的子节点

Sprite Kit: can not see existing node's children

我正在使用 SpriteKit 构建游戏。这是我的节点树:self.world.hydraAnchor.head

问题是head看不到

代码简单

let world = SKSpriteNode()
addChild(world)
...
let hydraAnchor = SKSpriteNode()
hydraAnchor.position = anchorsPosition
world.addChild(hydraAnchor)

let head = SKSpriteNode(imageNamed: "hydraHead")
head.position = CGPointMake(anchorsPosition.x, anchorsPosition.y + 50)
hydraAnchor.addChild(head)

我在构建项目时看不到head,而println(hydraAnchor.children)给出了[<SKSpriteNode> name:'(null)' texture:[<SKTexture> 'hydraHead' (50 x 50)] position:{700.50396728515625, 2486.333251953125} size:{25, 25} rotation:0.00]

而当我没有将 head 添加到 hydraAnchor 时,我这样做:

world.addChild(head)

head可见

zPositioninvisiblealpha 属性与问题无关。

您忘记了节点的子节点的坐标系与父节点的坐标系不同。您的父节点的 "worldNode" 位置可能在 x:500、y:500 并且在父节点之上添加一个子节点 20 点将会 x:0 y:20。

您正在使用 worldNode 坐标而不是父坐标添加子节点。

headhydraAnchor 的子项时,位置将相对于 hydraAnchor。您可能正在寻找更像这样的东西:

let world = SKSpriteNode()
addChild.world()
...
let hydraAnchor = SKSpriteNode()
hydraAnchor.position = anchorsPosition
world.addChild(hydraAnchor)

let head = SKSpriteNode(imageNamed: "hydraHead")
// Position relative to hydraAnchor
head.position = CGPointMake(anchorsPosition.size.width / 2, anchorsPosition.size.height + head.size.height / 2)
hydraAnchor.addChild(head)