无法使用atan2来获取box2d中的碰撞角度

时间:2014-07-07 20:54:08

标签: java libgdx box2d atan2

所以我使用box2d来处理libGDX中的物理和碰撞。我试图找出碰撞的角度,以便我可以在给定的角度应用某些效果。

做了一些研究,我发现atan2应该是我需要的数学函数来获得正确的角度,但它会返回好奇的结果。对于应位于第二象限的触点,我的角度小于90°。对于第3和第4象限的触点,我得到接触角的正数。有没有人对我在这里做错了什么有任何见解?

float other_x = contact.getWorldManifold().getPoints()[0].x * GameScreen.BOX_TO_WORLD;
float other_y = contact.getWorldManifold().getPoints()[0].y * GameScreen.BOX_TO_WORLD;
float playerXpos = this.getX();
float playerYpos = this.getY();

float damageAngle = (float)Math.atan2((other_y - playerYpos), (other_x - playerXpos));

damageAngle = (float) (damageAngle * (180d/Math.PI));

是的,世界流形的索引确实有坐标信息。我似乎无法弄清楚为什么atan2会返回这些值。

编辑因此,我认为问题不在于atan2,而是在于WorldManifold返回的联系信息。所以我想我的问题是,可能是什么问题,这样联系信息会像这样关闭?

0 个答案:

没有答案