更改touch内的touch.name而不再运行?

时间:2017-06-04 15:47:24

标签: swift sprite-kit sknode

我想点击某个spritenode并更改该spritenode的值。这是问题所在。当我这样做,并设置一个if语句,它知道转到if语句。但是,我不希望它在下次单击按钮之前运行。

示例:

apple.name = "apple"

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    for touch in touches {
        let location = touch.location(in: self)
        let node : SKNode = self.atPoint(location)
        if node.name == "apple" {
            appple.name = "orange" 
            print("Hello")
        }
        if node.name = "orange" {
        //do this
}

    }
}

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

首先在你的第二个if语句中,你没有检查值&#34; ==&#34;你正在分配一个值&#34; =&#34;它。

无论如何,解决问题的一个简单方法是添加else if语句。

if node.name == "apple" {
        appple.name = "orange" 
        print("Hello")
    }else if node.name == "orange" {
    //do this
}