Swift:if语句,用于检查Node Texture是否与另一个Node纹理相同

时间:2015-07-19 19:57:50

标签: ios xcode swift sprite-kit textures

有5个不同颜色的球。 choiceBall随每个点击随机改变纹理(颜色),并指示您必须点击其他4个彩球中的哪一个。我想做一个if语句,我检查我点击的球是否与choiceBall的纹理相同,但我似乎无法找到一种有效的方法。

在这里,我想如果choiceBall变成红色,我按下RED将打印的红色球。但它似乎没有发生。我不应该在touchesBegan中,因为每当我在球上点击时我都希望打印RED或BLUE或YELLOW或GREEN。

感谢您的帮助。 :)

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
    choiceBall.texture = array[randomIndex]


    if choiceBall.texture == redBall.texture {
        println("RED")
    }
    else if choiceBall.texture == blueBall.texture
    {
        println("BLUE")
    }
    else if choiceBall.texture == yellowBall.texture {
        println("YELLOW")
    }
    else if choiceBall.texture == greenBall.texture {
        println("GREEN")
    }

}

1 个答案:

答案 0 :(得分:1)

请参阅this answer on another StackOverflow post了解您可能正在寻找的解决方案。

就游戏架构而言,我建议在Color上使用choiceBall(或类似内容)的枚举,因为那时你不会比较实际纹理,只是{ {1}}每个球都是。这样可以使代码更清晰,并且您可能也可以从中获得更多功能。

示例:

Color