如何在有很多 SKShapeNodes 的 spritekit 游戏中增加 FPS?

How to increase FPS in spritekit game with lot of SKShapeNodes?

我需要一个建议。我正在制作一个有很多 SKShapeNodes 的游戏。所以我的 FPS 大约是 18。有没有人建议如何在这样的游戏中增加 FPS?整个游戏场景中SKShapeNode数量为220个

SKShapeNode 是性能密集型的,因为 SpriteKit 是 栅格化 (计算形状的像素)每个 帧而不是计算一次而不是重复使用它。

我看到的两个选项是:

  • 使用您的形状节点创建 SKTexture(s) object(s),而不是使用 SKSpriteNode 显示这些纹理而不是直接显示您的 SKShapeNode objects.
  • 制作 some/all 的 SKShapeNode objects children of SKEffectNode 并将其 shouldRasterize 属性 设置为 true,意思是将SKEffectNodechildren光栅化一次,缓存已经渲染的内容,在没有变化的情况下重用。

您应该使用什么取决于您要实现的目标,这些节点的形状是否会随时间变化?那些形状在移动吗?是全部 changing/moving 还是只有一部分?