我正在以编程方式设置我的相机节点。我的目标是让相机跟随玩家节点的x轴,但让相机的y轴高于“player.position.y”,类似于“player.position.y + 300”。
我在谷歌上搜索了一下这个问题后发现了这个问题:
cam.position = CGPoint(x:player.position.x,y:player.position.y + 500)
我把它放在didMove(to :)中以及相机的设置:
cam = SKCameraNode() //initialize and assign an instance of SKCameraNode to the cam variable.
self.camera = cam //set the scene's camera to reference cam
//cam.setScale(1.3)
cam.position = CGPoint(x: player.position.x, y: player.position.y + 500)
addChild(cam) //have cam be a child
我尝试在添加子(cam)行之前和之后放置它,但是cam.position行没有效果。
我已经尝试将我的相机设置为玩家节点和场景的孩子,但是使用任何一种方法我都可以让相机跟随播放器,但我无法弄清楚如何操纵X和Y分别。我能够影响相机位置的唯一方法是使用“设置比例”,但更多的是全局放大/缩小。
非常感谢任何建议。
编辑:答案的第一部分就是我所需要的:
cam = SKCameraNode()
player.addChild(cam)
cam.position = CGPoint(x:0,y:500)
self.camera = cam
答案 0 :(得分:2)
为什么不让相机成为播放器的孩子,然后将相对位置设置为+500,这样您就不必担心再次设置相机x的位置
cam = SKCameraNode()
player.addChild(cam)
cam.position = CGPoint(x:0,y:500)
self.camera = cam
然后在最后更新时,根据您的需要设置相机y:
let cam = player.childNode[0] as! SKCameraNode //Do whatever you need to do to find the camera
cam.position.y = 500 - player.position.y //This way if the player goes up 1 point, the camera moves down one point thus keeping it on the same spot