gpt4 book ai didi

ios - Sprite Kit - 在滑动手势的情况下为 SKSpriteNode 创建拱形路径

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:17:19 26 4
gpt4 key购买 nike

我正在制作一个简单的游戏,其中用户在对象 (SKSpriteNode) 上向上滑动,以拱形运动向上和向下发送它(我假设使用 SKAction)。这是我希望完成的视觉效果(请原谅我的基本 Pixelmator 技能):

object path in arching motion

我创建了一个 SKAction,它向上发送对象并根据速度等计算滑动的最终点。但是,我无法弄清楚一旦到达最终点如何使拱形运动发生,也不能回落到屏幕底部。我希望我可以为对象添加重力,并且 Sprite Kit 将处理对象的移动,但从我最初的发现来看情况似乎并非如此。

我在这里发布了我当前的代码:

https://github.com/mikeberlin/Swipe-Arch-PoC

该应用基于本教程:

http://www.raywenderlich.com/44270/sprite-kit-tutorial-how-to-drag-and-drop-sprites

代码是用 Xamarin/C# 编写的,但几乎与 Objective-C 等效代码相同。如果您需要/希望我将其转换为 Objective-C,我当然可以。

非常感谢大家的帮助,如果我可以提供任何进一步的信息,请告诉我。

最佳答案

现在听起来,您陷入了僵局,您可以在游戏中使用或不使用物理引擎。如果您使用物理引擎,游戏中的 Action 看起来会更加自然。使用它的缺点是它需要更多的工作来实现,而且 Sprite Kit 物理引擎有时可能很粗略。以下是您的两个选项的粗略概述:

如果你想坚持使用 SKAction 而不是使用物理引擎,你可以创建一个 UIBezierPath 并使用 [SKAction followPath:[curveName CGPath] 来移动你的 Sprite 。贝塞尔曲线看起来令人生畏,但一旦您掌握了它,它们的使用就会出奇地简单。如果您打算沿着这条路走下去,我建议您先查看 Wikipedia article. 中的图片。

但是,如果您选择使用它,您将无法为对象添加重力(尽管如果您摆弄 Action 的 timingMode 属性,您可能会笨拙地模拟它。)这样做,您将不得不使用物理引擎(以避免重新发明轮子。)如果您之前没有使用过 Sprite Kit 的物理引擎,Apple 的 Sprite Kit Programming Guide有一个简单的例子。

要使用物理引擎完成您想要的操作,您需要了解一些触发器并至少完成以下步骤:

  • 如果您不关心滑动的确切角度和速度,请使用 UISwipeGestureRecognizer 捕捉滑动。
  • 否则,请使用 touchesBegantouchesMovedtouchesEnded 函数来计算必须施加的推力方向
  • touchesMovedtouchesEnded 之间使用计时器计算滑动速度。
  • 使用 applyForce 和可能的 applyTorque 来移动你的物理 body 。
  • 修改物理体的质量和形状,让它按照你想要的方式移动

祝您游戏开发顺利!

关于ios - Sprite Kit - 在滑动手势的情况下为 SKSpriteNode 创建拱形路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com