我创建了几种形状的png图像,例如六边形和星形,它们都是白色。
我想对这些SKSpriteNodes或SKTextures进行着色,这样我就可以分配任何颜色,而不是为我需要的每种颜色创建形状图像,并将这些纹理加载到内存中。我需要图像是高分辨率的,所以有几个图像并将它们加载到内存中不是一个好的选择,因为我从XCode收到内存警告。在需要时将它们加载到内存中也不起作用,因为它们会导致我的游戏滞后约0.25秒。
那么,有什么方法可以创建1个SKTexture并在我需要它时更改颜色的SKSpriteNode的图像纹理?
答案 0 :(得分:0)
您可以像这样更改白色纹理的颜色(假设您使用纯白色纹理):
//Colorize to red
let yourNode = SKSpriteNode(imageNamed: "textureName")
yourNode.colorBlendFactor = 1
yourNode.color = UIColor.redColor()
该值必须是介于0.0和1.0之间的数字。默认 value(0.0)表示忽略color属性 纹理的值应该未经修改地使用。对于大于的值 0.0,纹理在被绘制到场景之前与颜色混合。
More about this topic on StackOverflow
希望这有帮助。