不断偏移SKNode的位置-Swift Sprite Kit

时间:2018-10-21 08:18:33

标签: ios swift xcode

我创建了一个Sprite SKNode类,其工作原理类似于StackView。在Sprite Kit中,对象的原点始终居中,因此我想将位置偏移一定量(calculateAccumulatedFrame().width/2),以便可以舒适地放置它。最好的方法是什么?

首先我想我可以做这样的事情

override var position: CGPoint {
    didSet {
        self.position = CGPoint(x: position.x - self.calculateAccumulatedFrame().width/2, y: position.y)
    }
}

但是这当然是不可能的,因为这将以无休止的循环结束 还有什么其他选择?

1 个答案:

答案 0 :(得分:0)

  

在Sprite Kit对象中,原点始终居中

那是不对的。有一个名为anchorPoint的有用属性,您可以设置该属性以指定“来源”的位置。

从您的代码来看,您似乎希望锚点位于精灵右边缘的中点,假设精灵为矩形。这意味着您希望锚点为(1, 0.5)

yourSprite.anchorPoint = CGPoint(x: 1, y: 0.5)