如何设置SKCameraNode相对于节点的位置x和y?
问题描述:
我正在以编程方式设置我的摄像机节点。我的目标是使相机跟随播放器节点的x轴,但相机的y轴高于“player.position.y”,如“player.position.y + 300”。如何设置SKCameraNode相对于节点的位置x和y?
我发现这个Google上搜寻了一会儿这个问题后:
cam.position = CGPoint(X:player.position.x,Y:player.position.y + 500)
我把这个在didMove(与摄像机的设置:)一起:
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
答
为什么不干脆让相机球员的孩子,然后设置相对位置+500,让你再也不用担心关于重新设置相机x位置
cam = SKCameraNode()
player.addChild(cam)
cam.position = CGPoint(x:0,y:500)
self.camera = cam
然后在你的最终更新,设置您的相机Ÿ根据你所需要的:
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
感谢您的回应!这几乎是完美的!您的代码按预期工作,但有副作用。 – genericguy25
有什么副作用? – Knight0fDragon
感谢您的回复!这几乎是完美的!您的代码按预期工作,但有副作用。当玩家跳转到我的玩家时(applyImpulse),整个场景似乎缓慢地跟随着玩家,直到玩家再次击中地面。 – genericguy25