Создание SKSpriteNode из шрифта SF Symbols другого цвета - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь создать SKSpriteNode с изображением из шрифта SF Symbols, и, хотя я могу это сделать, я не могу создать какой-либо другой цвет, кроме черного.

Вот мой код:

let image = UIImage.init(systemName: "gear")
let colored = image!.withTintColor(.red)
let texture = SKTexture.init(image: colored)
let sprite = SKSpriteNode.init(texture: texture, size: CGSize.init(width: 32, height: 32))

К сожалению, результирующий спрайт всегда выходит черным (а не красным).

Что я делаю не так?

1 Ответ

1 голос
/ 24 января 2020

Я думаю, что проблема в том, что UIImage - это векторная графика c, и только UIImageViews правильно обрабатывают их. Возможно, мы можем принудительно заставить его работать с растровым изображением, чтобы заставить его работать должным образом.

Вот некоторый экспериментальный код, который вы можете попробовать:

let image = UIImage(systemName: "gear").withTintColor(.red)

let data = image.pngData()
let newImage = UIImage(data:data) 
let texture = SKTexture(image: newImage)
let sprite = SKSpriteNode(texture: texture,size: CGSize(width: 32, height: 32))
...