【问题标题】:Player / CameraNode Position IssuePlayer / CameraNode 位置问题
【发布时间】:2020-05-26 16:34:18
【问题描述】:

我有一个camerNode 位置问题。我已经包含了下面的代码+尝试解决这个问题而没有任何进展。本质上,在我的 GameScene 中,当在场景中移动时,我将相机完美锁定在玩家身上,我实际上正在尝试修改这一点,以便相机稍微领先玩家,这意味着我的玩家实际上位于左侧屏幕,几乎就像一个偏移量 (+ 200) :) 如果存在的话。

代码:

        class GameScene: SKScene, SKPhysicsContactDelegate {
        // Create a constant cam as a SKCameraNode:
        let cam = SKCameraNode()




        override func didMove(to view: SKView) {

        // vertical center of the screen:
        screenCenterY = self.size.height / 2

        // Assign the camera to the scene
        self.camera = cam


        //Add the camera itself to the scene's node tree"
        self.addChild(self.camera!)
        // Position the camera node above the game elements:
        self.camera!.zPosition = 50

}

    override func didSimulatePhysics() {

        // Keep the camera locked at mid screen by default:
          var cameraYPos = screenCenterY
          cam.yScale = 1
          cam.xScale = 1

          // Follow the player:
          if (player.position.y > screenCenterY) {
          cameraYPos = player.position.y
          cam.yScale = newScale
          cam.xScale = newScale



        }

        // Camera Adjustment:
        self.camera!.position = CGPoint(x: player.position.x, y: cameraYPos)

我最初认为我可以通过将播放器更改为另一个 SKSpriteNode 来克服这个问题。即在我的 HUD 类中,我可以添加一个节点并应用此代码吗?然后我可以参考我的播放器类,其中我已经定义了覆盖函数 didMove 上方的位置。

         let initialPlayerPosition = CGPoint(x: 50, y: 350)

我确实尝试过这个并且 GameScene 开始播放,有没有更好的方法来实现这个结果?我认为可以更改代码以适应,但我仍在学习 Xcode。

【问题讨论】:

    标签: xcode sprite-kit position nodes skcameranode


    【解决方案1】:

    没关系 - 解决了!

    相机调整语句 - player.position.x + 200) :)

    这就是诀窍!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 2014-10-16
      相关资源
      最近更新 更多