在一个Jbox2D程序中,我创建了两个对象,一个矩形在(0, 10 )米,10米宽,1米宽,一个球在(1,0),半径为0.5f米
//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米?
发布于 2014-01-14 18:00:49
多边形形状的参数是“半宽”和“半高”。这是来自box2d的一种奇怪的继承(参见手册这里),而不是最直观的行为。尝试:
cs.setAsBox(width / 2, height / 2);
https://stackoverflow.com/questions/21096413
复制相似问题