我试图在swift中添加两个带有各自纹理的SKSpriteNodes,但是" Blade"在模拟过程中不会出现在屏幕上。我可以毫不费力地获得" Handle"出现虽然。所以我的问题是,什么是快速添加自我孩子的孩子的正确方法,以便一切按预期工作?
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)
}
答案 0 :(得分:1)
这应该让你接近你期望的地方。
AdaptiveTrigger
请记住,当您向另一个精灵添加精灵时,该位置是该精灵的“内部”位置。如果您不更改从其父级中心开始的锚点。所以你开始在Handle的中心并添加场景的一半宽度。因为Handle已经在场景中居中,刀片已经离场了。
希望这是有道理的,也是有帮助的。
同样lchamp提到你应该lowerCamelCase
Blade.position = CGPointMake(0, 124)
这有助于您将来识别Classes vs Variables。