我可以在SKCamera中制作无限滚动背景吗?

时间:2016-12-27 03:24:36

标签: swift sprite-kit

我的场景中有一个SKCamera,它随着一个可以抛出的球移动。我想制作无休止的滚动背景,但是当我这样做时,相机就会离开背景。有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

我做了垂直滚动背景,如下所示:

  • 创建背景类:

    import SpriteKit
    
    class BGClass: SKSpriteNode {
    
    func moveBG(camera: SKCameraNode) {
        if self.position.y - self.size.height - 10 > camera.position.y {
            self.position.y -= self.size.height * 3
        }
     }
    }
    
  • 创建3个背景:

    var bg1 : BGClass?
    var bg2 : BGClass?
    var bg3 : BGClass?
    
  • 在GameScene中创建一个函数

    func manageBackgrounds() {
        bg1?.moveBG(mainCamera!)
        bg2?.moveBG(mainCamera!)
        bg3?.moveBG(mainCamera!)
    }
    
  • 在Update中调用manageBackground():

    override func update(currentTime: NSTimeInterval) {
        mangePlayer()
        moveCamera()
        mangeBackgrounds()
        createNewClouds()
    }
    

对于水平滚动(相互添加3个背景图像并在第一个图像上设置相机):

  • 更改背景类:

    import SpriteKit
    
    class BGClass: SKSpriteNode {
    
    func moveBG(camera: SKCameraNode) {
            if self.position.x - self.size.width - 10 > camera.position.x {
        self.position.x -= self.size.width * 3
      }
     }
    }
    
  • 移动相机功能:

    func moveCamera() {
        self.mainCamera?.position.x += 3
    }