如何在Swift SpriteKit

时间:2016-05-21 16:52:01

标签: swift sprite-kit

我正在使用SpriteKit创建一个使用Swift的摩托车越野赛游戏。到目前为止,我已经将播放器和背景添加到了场景中。一切看起来都不错,直到我设置相机跟随播放器。现在背景不再适合屏幕了。

我的背景代码如下:

func setupBackground() {

    for index in 1...2 {
        let background = SKSpriteNode(imageNamed: "background1")
        background.size = self.size

        if index == 1 {
            background.position = CGPoint(x: 0, y: self.position.y)
        } else {
            background.position = CGPoint(x: background.size.width, y: self.position.y)
        }

        background.name = "background"
        background.zPosition = -1000

        self.addChild(background)
    }
}

即使相机跟随播放器,有没有办法将背景设置为适合屏幕?

我在互联网上搜索了几个小时,但我无法找到解决问题的方法。我希望你们中的一些人可以帮助我。

修改

背景适合屏幕,但是一旦我激活相机并将其设置为跟随播放器,背景也会移动。我想修复背景,无论相机在哪里移动,它都适合屏幕... 有没有办法实现这个目标?

相机的代码如下所示:

func setupCamera() {
    playerCamera = SKCameraNode()
    self.camera = playerCamera
    playerCamera.position = player.position
    self.addChild(playerCamera)
}

更新方法如下所示:

override func update(currentTime: CFTimeInterval) {

    let action = SKAction.moveTo(CGPoint(x: player.position.x + player.frame.width * 2, y: player.position.y), duration: 0.15)
    playerCamera!.runAction(action)

}

每个设置方法都由以下方法调用,该方法由didMoveToView方法调用:

func setupScene() {
    setupCamera()
    setupBackground()
    setUpGround()
    setupControlls()

}

1 个答案:

答案 0 :(得分:0)

由于SpriteKit中没有背景概念(可能很难实现或很好地定义,因为场景或多或少是一个无限的世界),您需要移动背景节点使用与相机相同的动作。