3

我目前正在开发一个带有 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?

感谢任何帮助!谢谢

4

0 回答 0