我需要比较两个 UIColor,但由于某种原因它总是返回 false。我尝试比较使用==
and .isEqual()
,但它们似乎都不起作用。
//This is a sample of the colors I have created
let blue_color = UIColor(red: 122/255, green: 180/255, blue: 190/255, alpha: 1)
//This is the SpriteNode I have to compare
let square = SKSpriteNode(color: randomColorController(), size: ksquaresize)
randomColorController() 只是一个随机化颜色并返回它的函数,因此在创建 square 时会调用它。
func randomColorController() -> UIColor {
let random = arc4random_uniform(3) + 1
switch random {
case 1:
let color = blue_color
return color
case 2:
let color = yellow_color
return color
case 3:
let color = yellow_color
return color
default:
let color = UIColor.clearColor()
return color
}
然后,根据我创建的正方形的位置,它将检查碰撞,比较我创建的正方形的颜色和我在开始时初始化的颜色。
func checkCollision(currentTime: CFTimeInterval, Square: SKSpriteNode) -> Int{
let color = Square.color
print(color.isEqual(blue_color))
print(color.isEqual(red_color))
print(color.isEqual(yellow_color))
if Square.position.y >= 0 && Square.position.y <= 40 {
if color.isEqual(blue_color) && (Square.position.x < basesize.width) {
// ADDS 1 POINT TO THE SCORE LABEL
flag = 1
points += 1
} else if color.isEqual(red_color) && (Square.position.x > (basesize.width*2)){
flag = 1
points += 1
} else if color.isEqual(yellow_color) && (Square.position.x < (basesize.width*2)) && (Square.position.x > basesize.width) {
flag = 1
points += 1
} else {
flag = -1
}
}
But color.isEqual(blue_color)
或任何其他颜色,似乎不起作用。我已经打印了Square.color
and blue_color
(以及其他),并且它们匹配。但它总会回来false
.