问题描述
我有一个 SpriteKit 应用程序,带有通过 SKSpriteNode
创建的五彩纸屑效果。每一块五彩纸屑都是一个节点。
我目前的策略如下:
- 使用白色正方形图像初始化节点,如下所示:
SKSpriteNode(texture: whiteSquareImage)
。 - 将节点的
color
属性设置为非白色,如下所示:node.color = UIColor.green
。 - 设置节点的
colorBlendFactor
属性,如下所示:node.colorBlendFactor = 1.0
。
问题:与简单地使用彩色图像相比,让系统为精灵着色是否会降低性能?
谢谢!
解决方法
这绝对是一个有趣的问题!几乎按照政策,我总是为我的应用程序中的任何单色精灵使用白色资产。这让我的颜色变得更加动态,因为它们可以在代码或场景文件中进行管理。我在 App Store 中有多个非常成功的应用程序,采用了这种方法,我从未见过使用 color 和 colorBlendFactor 时出现任何问题或性能下降。所以,我的第一反应是:别担心:)
当然,您可以通过用太多五彩纸屑超载模拟器来测试它,以至于它开始耗尽性能,然后测量差异,但我认为你会没事的。如今 iPhone 和 iPad 的性能如此之高,以至于要取得成功需要付出很多努力。我敢打赌,无论如何你都看不到任何区别。