Swift:使控制button不能随相机移动

我正在构build一个平台游戏,当他走路时,我让相机跟随玩家:

let cam = SKCameraNode() override func didMoveToView(view: SKView) { self.camera = cam ... } override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ cam.position = Player.player.position ... 

但是,当相机移动时,控制button也会移动 在这里输入图像说明

我该怎么做,以保持控制button静态?

请参阅SKCameraNode文档中的注意事项:

相机的后代总是呈现相对于相机节点的原点,而不会将相机的缩放或旋转应用于它们。 例如,如果您的游戏想要显示游戏玩法上方的分数或其他数据,则呈现这些元素的节点应该是当前相机节点的后代。

如果您希望HUD元素在相机移动/缩放/旋转时相对于屏幕保持固定,请将其设置为相机的子节点。

顺便说一句,你不需要改变每次update()的相机的位置。 相反,只要约束相机的位置,以配合玩家的位置:

 let constraint = SKConstraint.distance(SKRange(constantValue: 0), toNode: player) camera.constraints = [ constraint ] 

然后,SpriteKit会自动将相机保持在播放器的中心位置,而无需进行任何逐帧处理。 你甚至可以添加一个以上的限制 – 比如跟随玩家,但是不要让摄像机靠的太近(显示空白的空间)。

将button作为孩子添加到相机,如cam.addchild(yourButton)