如何将 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 节点移动为汽车驾驶体验?的主要内容,如果未能解决你的问题,请参考以下文章
当在 Swift Spritekit 中触摸并按住屏幕时,我将如何向上移动我的节点?