2016-05-21 34 views
1

我使用SpriteKit使用Swift創建了一個摩托車越野賽遊戲。到目前爲止,我已經將球員和背景添加到了場景中。直到我將相機設置爲跟隨播放器之前,一切看起來都不錯。現在背景已經不適合屏幕了。如何在Swift中添加固定背景SpriteKit

我的背景的代碼如下所示:

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() 

} 
+0

我不確定你究竟是什麼意思,但你可以試試這個:'background.size = UIScreen.mainScreen()。bounds.size'這使得背景成爲整個屏幕的大小 – Eric

+0

@Eric試試麼? :) – Dalibor

+0

對不起,我意外進入 – Eric

回答

0

由於在SpriteKit中沒有背景概念(即因爲場景或多或少是一個無限的世界,所以很難實現或定義好),您需要將您的節點移動到與攝像機相同的動作。