【问题标题】:Is it possible to change texture hue programatically in Spritekit project?是否可以在 Spritekit 项目中以编程方式更改纹理色调?
【发布时间】:2015-03-02 23:37:06
【问题描述】:

我对如何以有效的方式改变纹理的色调感兴趣?我正在尝试创造太空尘埃,它会每隔几秒钟改变一次它的颜色,从一种颜色到另一种颜色的平滑过渡。

我发现这有几种可能:

  • 使用this example 中的核心映像。但我不知道这将如何与 Spritekit 结合使用...

  • 使用粒子发射器创建太空尘埃并使用particleColorSequnece 属性随时间改变粒子的颜色。

  • 在我使用 Photoshop 时,我想到了一个简单的方法,它使用两张相同但颜色不同的图像,一个接一张,并改变最上面一张的不透明度。

这给了我想要的效果,实际上看起来很棒,但是有没有更好的方法?也许使用SKTexture?在这种特殊情况下,我只需要从一种颜色更改为另一种颜色,但是当需要一个接一个地进行多次更改时,有什么有效的方法来做到这一点?这样,我的第三个示例需要额外的图像...

这里是 link,它最准确地描述了我想要完成的事情。看看太空尘埃是如何随着时间的推移而改变颜色的(从深蓝色变为紫色,然后变为绿色或橙色)。我想这是以编程方式完成的...如果不适合在此处发布链接,我想请版主删除链接。谢谢!

【问题讨论】:

  • 有点难以回答,因为它可能是基于意见的,而且您没有提供太多数据。你在说多少个节点?他们多久改变一次?他们多大?等等……
  • 嗨 sangony...我有 3-4 个半透明节点,每隔几秒就会改变颜色。节点的尺寸大约是屏幕的 1/8。我想不会太大,而且我想这里没有什么昂贵的,但如果你有一些性能提示,我会很高兴听到它们。

标签: ios objective-c colors sprite-kit textures


【解决方案1】:

这是一个很难回答的问题,而且相当主观,但是......

我个人会使用 Emitter Node 方法,因为它似乎是为您正在寻找的使用类型而构建的,并且可能会产生一些很酷的效果。

话虽如此,您特别询问了有关更改色调和 colorBlendFactor 的问题,这可能是您真正想要的。我没有很好的链接,但this 可能会让你指向正确的方向。您可以看到它们如何混合颜色以获得所需的结果。

改变两种不同颜色的 alpha 的解决方案听起来也不错。

希望能有所帮助,祝你好运=)

【讨论】:

  • 我希望有一些简单的方法可以做到这一点,而 colorBlendFactor 完成了这项工作(使用 SKAction 方法 colorizeWithColor:colorBlendFactor:duration:) 谢谢 Skyler!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多