Проблема с положением узла плеера / камеры - PullRequest
0 голосов
/ 26 мая 2020

У меня проблема с позицией 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 я мог бы добавить узел и применить этот код вокруг? Затем я мог бы вернуться к своему классу игрока, в котором я уже определил позицию над моим переопределением fun c didMove.

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

Я попробовал это, и GameScene начала играть, есть ли лучший метод для достижения такого результата? Я предполагаю, что код можно изменить, чтобы приспособить его, но я все еще изучаю Xcode.

1 Ответ

0 голосов
/ 27 мая 2020

Неважно - решил!

Оператор настройки камеры - player.position.x + 200):)

Вот и все!

...