цвета в спрайтеки не совпадают - PullRequest
0 голосов
/ 11 января 2019

Я новичок в Swift и у меня проблема с UIColors в SpriteKit. Я объявляю набор цветов в перечислении следующим образом:

enum Colors {
static let red = UIColor(red: 231/255, green: 76/255, blue: 60/255, alpha: 1)
}

Затем я установил для этого цвета SKSpriteNode, произвольно называемый элемент, например:

element.color = Colors.red

Если я напечатаю значения сейчас, это будет результатом:

print(Colors.red)

UIExtendedSRGBColorSpace 0,905882 0,298039 0,235294 1

print(element.color)

UIExtendedSRGBColorSpace 0,905882 0,298039 0,235294 1

И, видимо, они выглядят одинаково, но если я сделаю это:

print(element.color == Colors.red)

Он вернется Ложь

Может кто-нибудь объяснить мне, почему это происходит? Заранее спасибо.

1 Ответ

0 голосов
/ 11 января 2019

Я думаю, что нашел причину: SKSpriteNode имеет цвет с P3DisplayColorSpace по умолчанию. Вы можете поиграть:

  enum Colors {
    static let red = UIColor.init(displayP3Red: 231/255, green: 76/255, blue: 60/255, alpha: 1)

}




 element.color = Colors.red
 print(Colors.red)
 print(element.color)
 print (type(of:element.color))
 print (type(of:Colors.red))
 print(Colors.red == Colors.red)
 print(     element.color ==   element.color)
 print (Colors.red == element.color)
 print(     element.color.cgColor.components![0] ==   Colors.red.cgColor.components![0])
 print(     element.color.cgColor.components![0] )
 print(    Colors.red.cgColor.components![0] )
...