【问题标题】:Most efficient way to change color of part of a skspritenode更改 skspritenode 部分颜色的最有效方法
【发布时间】:2017-01-04 22:23:23
【问题描述】:

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

【问题讨论】:

  • 只要您有其他东西可以按大小或位置定义或分隔手臂,您就可以将它们遮住,然后为它们单独着色。

标签: ios swift sprite-kit swift3 skspritenode


【解决方案1】:

更改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 作为包装器,因为它可以更轻松地移动、旋转它们等,因为您只需要更改位置,旋转等,而不是多个节点。

【讨论】:

  • 这说明了很多!不幸的是,手臂相当复杂,所以我只需要使用另一个图像。但是感谢您的解释!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多