JBox2D坐标不匹配

时间:2014-01-13 16:32:32

标签: java jbox2d

在Jbox2D程序上工作我创建了2个对象,一个矩形,宽度为(0,10)米,宽度为10米,宽度为1米,球体位于(1,0),半径为0.5米米

//in RectangleObject Class
PolygonShape cs = new PolygonShape();
cs.setAsBox(width, height);

//In CircleObject Class
CircleShape cs = new CircleShape();
cs.m_radius = radius;  

当我的程序运行时,球向平台移动并像我预期的那样击中矩形,但我得到的数字并不是我所期望的

BallX[0] : 1
BallY[0] : 7.9964995
RectX[0] : 1
RectY[0] : 10

如果从球的中心计算X和Y,那么在Y = 9.5时球应该距离盒子只有0.5。即使它使用直径,它在Y = 9时仍应至多1米远。

任何人都知道为什么当半径仅为0.5时计算Y为2米?

1 个答案:

答案 0 :(得分:1)

多边形形状的参数是“半宽”和“半高”。这是来自box2d的一个奇怪的结转(参见手册here),而不是最直观的行为。尝试:

cs.setAsBox(width / 2, height / 2);