如何找到两个精灵之间接触点的法向量

时间:2015-03-20 15:33:43

标签: ios swift geometry sprite-kit sprite

我正在制作一个游戏,角色可以朝着他落地的表面方向跳跃。例如,如果他在地上,他只能跳起来。如果他在右边缘他只能向左跳......等等。目前我已经将我的SKNodes设置为leftWall,rightWall,bottomSurface,topSurface并且有一个巨大的if / else ......这样可行但会变成方式更复杂,因为我添加不同角度的不同表面等...

我认为实现这个的更好方法是在字符精灵和一般wallNode精灵之间的接触点找到法线向量方向。

任何人都可以帮我确定A)精灵之间的接触点,假设角色有一个圆形物理体,墙壁总是直边。和B)接触点的法线 谢谢!

1 个答案:

答案 0 :(得分:0)

我不认为矢量或影响角度对你有好处,因为你的玩家的跳跃可能会在方舟中。因此,在玩家跳伞的不同点击中同一个表面会产生不同的结果。

我建议你为表面使用独特的类别位掩码。更高级的版本是仅使用一个类别,并利用SKSpriteNode的字典属性来保存角度值。

根据联系人数据,您可以为播放器设置正确的角度跳跃。