将SKSpriteNode转换为SKShapeNode

时间:2017-04-12 14:57:59

标签: ios swift sprite-kit

我在Swift 3.1工作。我想为SKSpriteNode创建一个阴影。我正在考虑从我的SKSpriteNode做一个SKShapeNode并给它一些发光和alpha。

但是如何将SKSpriteNode转换为SKShapeNode?

2 个答案:

答案 0 :(得分:1)

如果你的计划是制作一个看起来像你的精灵的阴影,那么建议使用另一个SpriteNode。 SKShapeNodes表现不佳,将精灵转换为矢量形状的过程将会很重。

你应该读过关于SKEffectNode的内容,因为你可以使用它们来创建一个带有当前纹理的SpriteNode,并对它应用一些效果来将纹理变成黑色,模糊,甚至可以使用仿射变换来扭曲和旋转纹理所以它看起来像一个阴影。

为了在你有很多阴影的情况下提高GPU / CPU的效率,你可以简单地将所有阴影精灵作为单个SKEffectNode的子节点,它将同时对每个阴影精灵应用效果。我认为在主精灵下定位阴影对你来说不是一个挑战。 将阴影作为主精灵的子元素会强制您为每个投射阴影的精灵放置一个效果节点,并会导致效果反复处理。通过将每个阴影作为同一节点的子节点,它们将一次全部渲染,并且每帧仅处理一次效果。

我希望它有所帮助!

答案 1 :(得分:0)

已知

SKShapeNode在SpriteKit中表现不佳。相反,您应该为阴影添加另一个SKSpriteNode,并将其作为子项添加到主SKSpriteNode

如果您希望阴影显示在其父级下方,您可能还需要调整它的相对z位置。