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

Ios 改变skspritenode部分颜色的最有效方法,ios,swift,sprite-kit,swift3,skspritenode,Ios,Swift,Sprite Kit,Swift3,Skspritenode,所以我知道如何更改整个精灵节点的颜色,但是有没有办法说只更改角色手臂的颜色,或者是通过为精灵指定一个具有适当颜色的新图像来实现这一点的唯一方法?提前感谢您的帮助。我不知道有什么方法可以更改同一SKSpriteNode特定部分的颜色属性。您可以做的事情是,根据您需要的颜色制作纹理,并更改纹理属性而不是颜色。我不知道有任何方法可以更改同一个SKSpriteNode的特定部分的颜色属性。您可以做的事情是根据精灵所需的颜色制作纹理,并更改纹理属性,而不是颜色。仅更改SKSpriteNode的一部分颜色的

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

我不知道有什么方法可以更改同一SKSpriteNode特定部分的颜色属性。您可以做的事情是,根据您需要的颜色制作纹理,并更改纹理属性而不是颜色。

我不知道有任何方法可以更改同一个SKSpriteNode的特定部分的颜色属性。您可以做的事情是根据精灵所需的颜色制作纹理,并更改纹理属性,而不是颜色。

仅更改
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(With name:)
访问
colorChanger

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


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

只有在涉及其他节点的情况下才能更改
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(With name:)
访问
colorChanger

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


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

这解释了很多!不幸的是,手臂相当复杂,所以我只能使用另一张图片。但是谢谢你的解释!这解释了很多!不幸的是,手臂相当复杂,所以我只能使用另一张图片。但是谢谢你的解释!只要你有其他东西可以根据大小或位置来定义或分隔手臂,你就可以将它们遮住,然后对它们进行唯一的着色。只要你有其他东西可以根据大小或位置来定义或分隔手臂,你就可以将它们遮住,然后对它们进行唯一的着色。