改变Swift SpriteKit分数的背景

时间:2015-07-17 12:55:36

标签: ios iphone swift sprite-kit

我正在尝试构建一个游戏(Swift Sprite Kit),其中在用户通过一定数量的分数后,场景的背景会立即改变。 这不起作用(在GameScene中)

func addSwitchBackgrounds() {

         let pointsLable = MLPointsLabel(num: 0)

        if (pointsLable == 30) {

            let backgroundTexture = SKTexture (imageNamed: "Store")
            let backgroundImage =  SKSpriteNode (texture: backgroundTexture,size:view!.frame.size)
            backgroundImage.position = view!.center

        } 
}

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

这个简单的例子应该指出正确的方法(只需复制和粘贴以查看它是如何工作的)......

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {

    let backgroundNode = SKSpriteNode(imageNamed: "background")

    var score = 0

    let label = SKLabelNode(fontNamed: "ArialMT")

    override func didMoveToView(view: SKView) {
        //setup scene


        backgroundNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))

        label.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))

        label.text = "SCORE : 0"

        self.addChild(backgroundNode)

        self.addChild(label)

    }


    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {


        score++

        if(score == 5){

            self.backgroundNode.texture = SKTexture(imageNamed: "background_v2")



        }
         label.text = "SCORE : \(score)"

    }


}

首先,您创建一个backgroundNode属性,然后在代码中更改其纹理。您不必在更新方法中对当前分数进行持续检查。只有在分数增加时才能进行检查。我不知道你在哪里调用addSwitchBackgrounds,但只是想让你知道,没有必要使用update:方法。