最有效的方法来改变skspritenode部分的颜色

时间:2017-01-04 22:23:24

标签: ios swift sprite-kit swift3 skspritenode

所以我知道如何改变整个精灵节点的颜色,但是有没有办法说改变一个角色的手臂的颜色,或者是通过为精灵分配一个新的图像来实现这一目的的唯一方法适当的颜色?感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不知道有什么办法可以改变同一个SKSpriteNode的特定部分的颜色属性。你可以做的就是制作你需要精灵的颜色纹理,然后改变纹理属性而不是颜色。

答案 1 :(得分:0)

仅更改SKSpriteNode的一部分颜色的唯一方法只能通过其他相关节点来完成。但是我只推荐这个,如果你改变颜色的区域很简单,比如矩形或圆形。为此,我还建议您使用SKNode来包装其子节点。

例如:

var character = SKNode()

var characterImage = SKSpriteNode(imageNamed:"yourImage.png")
//Set sizes, anchor points, what not
character.addChild(characterImage)

var colorChanger = SKSpriteNode(color: yourColor, size: size of arms or whatever)
//Set position -> (colorChange.position)
colorChanger.name = "colorizer"
character.addChild(colorChanger )

使用此功能,您还可以随时更改手臂的颜色,使用childNode(withName:)访问colorChanger

但是,如果手臂 变得复杂,则必须使用单独的图像。建议使用SKNode包装这些图像。

PS:如果你是Swift和Spritekit的新手,那么使用SKNodes作为包装器更好的原因是因为它可以更容易地移动它们,旋转它们等等,因为你只需要改变它们一个节点的位置,旋转等,而不是很多。