gpt4 book ai didi

ios - 如何设置 SKCameraNode 相对于节点的 x 和 y 位置?

转载 作者:搜寻专家 更新时间:2023-11-01 07:11:12 25 4
gpt4 key购买 nike

我正在以编程方式设置我的相机节点。我的目标是让摄像机跟随玩家节点的 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

我试过将它放在 add child(cam) 行之前和之后,但是 cam.position 行没有效果。

我已经尝试将我的相机设置为玩家节点和场景的子节点,但是无论使用哪种方法我都可以让相机跟随玩家但我无法弄清楚如何操纵 X 和 Y分别地。我能够影响相机位置的唯一方法是使用“设置比例”,但这更像是全局放大/缩小。

如有任何建议,我们将不胜感激。

编辑:答案的第一部分就是我所需要的:

cam = SKCameraNode()
player.addChild(cam)
cam.position = CGPoint(x:0,y:500)
self.camera = cam

最佳答案

为什么不让相机成为玩家的 child ,然后将相对位置设置为 +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

关于ios - 如何设置 SKCameraNode 相对于节点的 x 和 y 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com