Работа над программой Jbox2D Я создал 2 объекта прямоугольника в (0,10) метра и 10 метров шириной и 1 метра в ширину, а шар в (1,0), который имеет радиус 0.5f СчетчикиКоординаты JBox2D не совпадают
//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 рассчитываются из центра шара, тогда шар должен быть всего 0,5 от коробки при Y = 9,5. даже если он использует Диаметр, он должен оставаться на расстоянии не более 1 метра при Y = 9.
Кто-нибудь знает, почему его вычисление Y должно составлять 2 метра, когда радиус равен 0,5?
Они все еще не сталкиваются визуально, но, прочитав руководство, я заметил «Кожа», поэтому номер не является ТОЧНО правильным. из того, что я могу сказать, что поверхность кожи составляет 0,5 фунта вокруг поверхности фигур и, масштабируя все до 64 раз, делает небольшой промежуток между ними завышенным, так что я просто должен приспособиться к этому визуально, поскольку все сейчас встречается правильно. – Snowdrama
Кожа должна быть нечувствительной, если вы используете правильные размеры. По умолчанию скин равен 0.01f (или 1cm) –
Поскольку координаты X и Y многоугольника являются центрами, я должен рисовать прямоугольник как drawRect (getX() - (getWidth()/2), getY() - (getHeight()/2), getWidth(), getHeight()); но я получаю: https://www.dropbox.com/s/n0vcecuj9ut4mz8/Screenshot%202014-01-15%2002.44.49.png Небольшой промежуток между Кругом и Прямоугольниками. Также это масштабируется x10 вместо преобразования в пиксельные координаты, я просто использую буквальные мировые координаты, а затем масштабирую все. – Snowdrama