我目前正在开发一个带有 SKCameraNode 的 Spritekit 游戏,允许玩家查看战略地图。我正在尝试通过将子节点添加到 SKCameraNode 来实现 HUD,但我遇到了关于如何设置子节点坐标的问题。
我这样初始化我的游戏场景:
mainScene = GameScene(size: self.view.bounds.size)
main = view as! SKView
mainScene.panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(shiftView(recognizer:)))
main.addGestureRecognizer(mainScene.panRecognizer)
mainScene.tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(testTap(recognizer:)))
main.addGestureRecognizer(mainScene.tapRecognizer)
mainScene.pinchRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(zoomView(recognizer:)))
main.addGestureRecognizer(mainScene.pinchRecognizer)
let viewSize = mainScene.size
mainScene.tempGameBoard.boardCamera.createHUD(size: viewSize, for: mainScene.tempGameBoard.boardCamera.xScale)
print("cameraframe: \(mainScene.tempGameBoard.boardCamera.frame)")
main.showsFPS = true
main.showsNodeCount = true
main.showsDrawCount = true
mainScene.scaleMode = .aspectFill
main.presentScene(mainScene)
在 iPhone 7 上进行测试,我打印 gameScene 大小并获取(375, 667)
,然后我的相机框架是(667, 375, 0, 0)
但是,在 iPhone SE 上进行测试,我打印了 gameScene 大小并得到了(320, 568)
相机框架仍然存在的结果(667, 375, 0, 0)
似乎无论我在什么设备上测试,gameScene 都会发生变化,但相机框架的大小是一样的。这让我无休止地困惑。相机从哪里获取其帧参数?
此外,我可以可靠地使用什么坐标来实际设置 HUD?
感谢任何帮助!谢谢