在游戏过程中添加另一个背景图片来改变背景

func createBackgrounds() { for i in 0...2 { let bg = SKSpriteNode(imageNamed: "BG Day") bg.name = "BG" bg.zPosition = 0; bg.anchorPoint = CGPoint(x: 0.5, y: 0.5) bg.position = CGPoint(x: CGFloat(i) * bg.size.width, y: 0) self.addChild(bg) } } 

如果我想在BG Night 2分钟后添加另一个背景图像,我怎样才能在swift 2中编写代码?

您可以使用SKAction.runBlock在将来运行一些代码

 class GameScene: SKScene { var background: SKSpriteNode? override func didMoveToView(view: SKView) { super.didMoveToView(view) changeBackgroundIn2Mintues() self.background = SKSpriteNode(imageNamed: "OLD_BG_IMAGE_NAME") } private func changeBackgroundIn2Mintues() { let wait = SKAction.waitForDuration(60 * 2) let changeBG = SKAction.runBlock { [unowned self] in self.background?.removeFromParent() self.background = SKSpriteNode(imageNamed: "NEW_BG_IMAGE_NAME") } let sequence = SKAction.sequence([wait, changeBG]) self.runAction(sequence) } } 

你可以简单地通过animationUIImage来做到这一点。 如下:

 let bgImageArray = [UIImage(named: "BG Day")!, UIImage(named: "BG Night")!] bg.animationImages = bgImageArray bg.animationDuration = 120 //seconds bg.animationRepeatCount = 0 //forever bg.startAnimating() 

然后把图像bg放在视图的后面。