在没有 运行 的情况下再次更改 node.name 触摸内部?

Change node.name inside of touch without running again?

我想点击某个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
}

    }
}

有办法吗?

首先,在您的第二个 if 语句中,您没有检查值“==”,您正在为其分配一个值“=”。

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

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