1

我创建了几种形状的png图像,例如六边形和星星,它们都是白色的。

我想为这些 SKSpriteNodes 或 SKTextures 着色,以便我可以分配任何颜色,而不是为我需要的每种颜色创建形状图像并将这些纹理加载到内存中。我需要高分辨率的图像,因此拥有多个图像并将它们加载到内存中并不是一个好的选择,因为我收到了来自 XCode 的内存警告。根据需要将它们加载到内存中也不起作用,因为它们会导致我的游戏延迟大约 0.25 秒。

那么,有什么方法可以创建 1 个 SKTexture 并在需要更改颜色时为 SKSpriteNode 的图像纹理着色?

4

1 回答 1

2

您可以像这样更改白色纹理的颜色(假设您使用的是纯白色纹理):

//Colorize to red

 let yourNode = SKSpriteNode(imageNamed: "textureName")
 yourNode.colorBlendFactor = 1
 yourNode.color = UIColor.redColor()

关于colorBlendFactor

该值必须是介于 0.0 和 1.0 之间的数字,包括 0.0 和 1.0。默认值 (0.0) 表示颜色属性被忽略并且纹理的值应该不加修改地使用。对于大于 0.0 的值,纹理会在绘制到场景之前与颜色混合。

有关此主题的更多信息 StackOverflow

希望这可以帮助。

于 2015-07-20T18:29:22.087 回答