Swift 匹配node.fillColor(SKShapeNode)

Swift 匹配node.fillColor(SKShapeNode),swift,sprite-kit,skshapenode,Swift,Sprite Kit,Skshapenode,我在屏幕上有25个圆圈,每个圆圈都有一个由宣布的颜色生成的随机颜色,每个圆圈都被命名为“圆圈1”、“圆圈2”等 将node.fillColor与预定义颜色匹配时,只有黄色返回值。其他一切都保持在0 看不出我做错了什么/错过了什么 let SDRed = SKColor(red: 255/255, green: 61/255, blue: 61/255, alpha: 1.0) let SDBlue = SKColor(red: 0/255, green: 175/255, blue: 255/2

我在屏幕上有25个圆圈,每个圆圈都有一个由宣布的颜色生成的随机颜色,每个圆圈都被命名为“圆圈1”、“圆圈2”等

将node.fillColor与预定义颜色匹配时,只有黄色返回值。其他一切都保持在0

看不出我做错了什么/错过了什么

let SDRed = SKColor(red: 255/255, green: 61/255, blue: 61/255, alpha: 1.0)
let SDBlue = SKColor(red: 0/255, green: 175/255, blue: 255/255, alpha: 1.0)
let SDYellow = SKColor(red: 255/255, green: 255/255, blue: 0/255, alpha: 1.0)
let SDOrange = SKColor(red: 255/255, green: 128/255, blue: 0/255, alpha: 1.0)
let SDPink = SKColor(red: 255/255, green: 105/255, blue: 180/255, alpha: 1.0)
let SDGreen = SKColor(red: 144/255, green: 238/255, blue: 144/255, alpha: 1.0)
let SDDodgerBlue = SKColor(red: 30/255, green: 144/255, blue: 255/255, alpha: 1.0)



func checkAllColoursAvailable() -> Bool {


    var yellow = 0
    var blue = 0
    var pink = 0
    var green = 0
    var red = 0
    var orange = 0


    enumerateChildNodes(withName: "CIRCLE_*", using:
        { (node, stop) -> Void in
            print((node as! SKShapeNode).name!)

            let col: SKColor = (node as! SKShapeNode).fillColor

            if col == SDYellow {
                yellow = yellow + 1
            } else if col == SDGreen {
                green = green + 1
            } else if col == SDDodgerBlue {
                blue = blue + 1
            } else if col == SDOrange {
                orange = orange + 1
            } else if col == SDRed {
                red = red  + 1
            } else if col == SDPink {
                pink = pink + 1
            }
    })


    if yellow >= 1 && blue >= 1 && green >= 1 && orange >= 1 && red >= 1 && pink >= 1 {
        return true
    } else {
        return false
    }
}

看看这是否有帮助。嗨,我也有同样的问题。甚至使用了上述注释中的
UIColor
compare代码-它不起作用。你找到解决方案了吗?为什么SKShapeNode会改变预定义的UIColor的
cGColor
?@Piotch发现,通过创建一个已定义的节点,并将一个变量“COLOR”指定为字符串并命名为该颜色,然后将两个节点的值相互比较,看看它们是否匹配:)希望这有帮助