我的主角通过触摸并按住他然后向左或向右移动手指来移动角色。为此,我只需使用触摸位置的x位置更新touchesMoved()
中节点的x位置(在平面上左右摆动),然后根据移动的方向应用动画。
我想把它提升到一个新的水平并达到同样的效果,但是使用物理学,这样当我完成移动他并释放我的手指时,他可能会朝着他移动的方向滑动一点点如果这是有意义的,我会按照他的速度移动他。有谁知道我怎么能达到这个效果?
我是否必须像我现在一样做并在移动时更新位置,同时还应用力/冲动?对如何处理这个问题感到困惑
答案 0 :(得分:1)
通过力,冲动或速度移动物理体将自动更新玩家位置。
因此,您必须以正确的方式来实现目标。但基于此,我建议您使用touchesMoved中的.position
代码替换.physicsBody!.velocity
代码。然后,在你的touchesEnded上,你可以施加一点冲动,给予玩家一点点“冰上”效果,让他们保持一点点。
你需要试验一下你想让角色以正确的速度移动多少速度,然后你需要使用冲动数字才能使它恰到好处。
这可能会有点棘手,但是在touchesMoved中......因为在某些时候你会想要将速度重置为0(所以当你的手指停止时它们会停止移动)。
为此,您需要使用previousLocation
对象中的。touch
,并比较移动的X的距离。如果移动的距离X> 0(或一些死区阈值)则应用速度;如果deltaX为0,则将速度设置为0。
这实际上可能比仅使用.position
移动角色更复杂,然后让角色在touchesEnded上滑动一点物理。
你必须玩它才能做到正确。