在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米?
答案 0 :(得分:1)
多边形形状的参数是“半宽”和“半高”。这是来自box2d的一个奇怪的结转(参见手册here),而不是最直观的行为。尝试:
cs.setAsBox(width / 2, height / 2);