如何将 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")
这将有助于您将来识别 类 与变量。
我试图在 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")
这将有助于您将来识别 类 与变量。