我用Box2D模拟一个人在行星上行走。我计算了一个朝向行星中心的自定义重力,它的工作正常,除了一个小故障:我用的盒子作为人的物理模型,当它在行星上运行时,它正在旋转。我希望它永远是正确的。你建议我怎么做?
我曾经想过,当人的脚碰到地面时,取重力矢量并计算切线矢量,但我不太清楚如何做到这一点。如果这是最好的方法,你能解释一下如何实现吗?难道没有更简单的方法吗?
发布于 2014-05-21 12:54:53
有个更简单的方法。
我假设“正确的方式”你的意思是,脚应该总是指向地球。
做以下工作:
如果你这样做,棱镜接合应该照顾你的球员旋转的方式,你想它。
如果您喜欢手动设置角度,我认为您可以使用这样的atan2来计算角度:
Math.atan2(planetPos.y - playerPos.y,planetPos.x - playerPos.x);
这将计算一个角度的程度,尽管。您必须将其转换为弧度才能在Box2D中使用它。
https://stackoverflow.com/questions/23790508
复制相似问题