Sprite kit Spritekit如何避免转向

Sprite kit Spritekit如何避免转向,sprite-kit,Sprite Kit,我正在制作一个吃豆人风格的迷宫游戏。 我可以应用冲动,并将其限制在英雄身上所需的任何垂直或水平方向 然而,当我为墙壁添加物理身体精灵时,它变得很奇怪。 我已经将英雄的身体和墙壁设置为没有弹跳 它迎头撞到墙上,像预期的那样停了下来。 但如果我改变方向,沿着墙移动,我会偏离墙一个小角度。 你知道是什么原因造成的吗?如何避免? 我只想在垂直和水平直线上移动 好的,所以这里的解决方案有点违反直觉。 不要在physicsBody上使用applyForce:或applyImpulse:方法族,而要在spri

我正在制作一个吃豆人风格的迷宫游戏。 我可以应用冲动,并将其限制在英雄身上所需的任何垂直或水平方向

然而,当我为墙壁添加物理身体精灵时,它变得很奇怪。 我已经将英雄的身体和墙壁设置为没有弹跳

它迎头撞到墙上,像预期的那样停了下来。 但如果我改变方向,沿着墙移动,我会偏离墙一个小角度。 你知道是什么原因造成的吗?如何避免?
我只想在垂直和水平直线上移动

好的,所以这里的解决方案有点违反直觉。 不要在physicsBody上使用applyForce:或applyImpulse:方法族,而要在sprite本身上使用runAction:forKey:。 对于方向上的任何更改,请在调用runAction:forKey:之前删除Action:forKey:以保持正交。 否则会有一个短暂的角运动

这里的另一个技巧是为距离找到合适的速度。太快了,它会飞过墙壁。缺陷 然后根据场景大小使用倍增应用速度和距离。 总距离应大于任何方向的可能距离。 这会让物体一直移动,直到它撞到墙上或者你告诉它朝不同的方向移动

这真的很有效

使用物理身体运动,它似乎最适合有重力的平台式情况

在自顶向下的视图中,通常不存在重力。
虽然可以想象,你可能希望某个对精灵施加重力的东西将其吸入

对你来说,使用物理进行移动,而不仅仅是移动英雄节点有多重要?我明白你的意思,但我需要它朝一个方向移动,直到指向另一个方向或撞到墙上并停止。