如何使用 Swift 在 SpriteKit 上绘制贝塞尔曲线?
Posted
技术标签:
【中文标题】如何使用 Swift 在 SpriteKit 上绘制贝塞尔曲线?【英文标题】:How do I draw beizer curve on SpriteKit using Swift? 【发布时间】:2017-11-12 11:45:46 【问题描述】:我正在试图弄清楚如何绘制贝塞尔曲线。我正在构建一个放风筝的游戏,风筝线需要是贝泽曲线。
【问题讨论】:
欢迎来到 Stack Overflow!您似乎在要求某人为您编写一些代码。 Stack Overflow 是一个问答网站,而不是代码编写服务。请see here学习如何写出有效的问题。 @F***Lauer 如果您曾经使用过 2D 游戏引擎,您会意识到许多用户的期望之一就是它可以绘图。 SpriteKit 是一个异常,因为它有可怕的绘图,所以它隐藏了它。更糟糕的是,它无法对贝塞尔曲线进行快速、高效的更改,因此在其所有文档中都无法讨论关于 2D 绘图的内容。典型的苹果公司,它的遗漏比它的说法更多。因此,这很可能是一个人在他们的绳索末端的有效查询。如果你能原谅双关语。 @Confused 我对这个问题发表了评论,因为在我看来,用户向 Google 索要他的请求。在我看来,我比 Mit Sengupta 付出了更多的努力,因为我在谷歌上搜索并在一分钟内找到了六个有希望的链接。 @F***Lauer 然而,您首先建议他寻求编写的代码,而不是谷歌搜索的课程。而且您还没有尝试过任何链接......也没有意识到没有高性能的解决方案。这是,如果你知道这个框架,不仅仅是一个好奇,这是一个真正的框架问题,除了我的“答案”中的链接之外没有提到任何地方。 好了,已经够了。 -_- 【参考方案1】:SKShapeNode
接受贝塞尔线条和其他线条,但您必须在 Apple 或您自己的框架中以某种方式在其他地方以某种方式表达这些线条,并为其创建 CGPath。
而且你不能动态调整传递的 CGPath,你必须为每一个变化替换它。
这只会加剧 SKShapeNode 性能方面的巨大问题。这很可悲。
阅读此处了解有关其无用性的更多信息:http://sartak.org/2014/03/skshapenode-you-are-dead-to-me.html
很遗憾,您的问题没有很好的答案。
【讨论】:
非常感谢!非常感谢! :) 我找到了这个解决方案 cocoapods.org/pods/BezierCurveView 。您对此有何看法? 这会更慢。它使用 drawRect(),这是一个关于速度的恐怖故事。它使用的 UILayers 不能很好地与 SpriteKit 配合使用。由于您还不是 SpriteKit 用户,我建议您找到一个绘图友好的引擎并使用它。以上是关于如何使用 Swift 在 SpriteKit 上绘制贝塞尔曲线?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 在 SpriteKit 上绘制贝塞尔曲线?
如何使用 Swift 正确切换 SpriteKit 中的 SKScene?
如何使用 Swift 在 SpriteKit 程序中初始化/移动相机?
如何使用 swift 使用带有 spriteKit 的情节提要