如何将 SpriteKit 节点移动为汽车驾驶体验?

Posted

技术标签:

【中文标题】如何将 SpriteKit 节点移动为汽车驾驶体验?【英文标题】:How to move SpriteKit Node as Car driving experience? 【发布时间】:2020-03-17 18:31:47 【问题描述】:

我想根据用户触摸但使用曲线移动我的汽车。每当我触摸场景时,它都会正常移动。但我需要用汽车的完美动力来移动它。

1.触摸正面的任意位置:它应该笔直移动并在用户触摸时停止。

2.触摸右前方中的任意位置:它应该以曲线向右移动。

3.触摸左前中的任意位置:它应该以曲线向左移动。

4. 触摸Bottom/Back中的任意位置:它应该正反向移动。

5. 触摸右下角中的任意位置:它应该以向右的曲线反向移动。

6.触摸左下角中的任意位置:它应该以曲线向左反向移动。

即使旋转到水平,它的行为也应该相同。

我是 SpriteKit 的新手,欢迎使用其他解决方案。

Please check image for an idea

【问题讨论】:

嗨,阿杰,欢迎来到 SO。不幸的是,您的问题不是一个好问题,因为不确定您在问什么。由于真正的驾驶需要模拟输入(方向盘等),您不会从“现场接触”中获得“真正的驾驶体验”。您可以添加一些图表来显示您想要实现的目标吗? 对不起,让我详细说明一下。 @SteveIves 请检查更新后的问题和图片,希望有助于了解更多信息。 【参考方案1】:

您需要做的是检测精灵上的触摸,计算出精灵相对于中心的位置,然后移动精灵(可能通过 CGPath 之后的 SKAction)。

其中涉及到很多不同的概念,所以如果你真的是 Sprite Kit 的新手,我会推荐一些好的 SK 教程。就我个人而言,我喜欢 raywenderlich.com 上的那些,但像 Udemy 这样的地方也有不错的。

【讨论】:

是的,谢谢,史蒂夫。我目前正在使用 CGPath 和 SKAction 来跟随它,但是当我触摸汽车后部的某个地方时,它会直接向后旋转,我想要它应该倒车,或者另一个选择是平稳转弯并继续前进。 所以汽车转向面对触摸?您可能必须决定,如果触摸在汽车的“后”半部分,它会反转而不是旋转。 是的,我检测到如果触摸位置是前面或后面,但是 SKAction 跟随路径将汽车直接向后旋转,然后开始移动,因此汽车不会反向行驶。所以,毕竟,我可以做的就是从前面创建路径,用曲线路径反向移动汽车。 当您为精灵创建一个跟随 CGPath 的动作时,可以选择让精灵旋转以面对路径。由于它是从后向前的,最简单的解决方案可能是创建相反方向的路径。 听起来好像您在这方面做了更多工作,而您的问题暗示了这一点。如果汽车面临错误方向的问题是您唯一的问题,您应该重新表述您的问题并包含您的代码。

以上是关于如何将 SpriteKit 节点移动为汽车驾驶体验?的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit驾驶技术

Swift SpriteKit:创建逼真的 2D 驾驶体验

当在 Swift Spritekit 中触摸并按住屏幕时,我将如何向上移动我的节点?

使用 SpriteKit 如何以随机但一致的速度将精灵节点移动到一个点

软件定义汽车产业生态创新白皮书

软件定义汽车产业生态创新白皮书