0

Jbox2D プログラムで作業して、(0,10) メートル、幅 10 メートル、幅 1 メートルの長方形の 2 つのオブジェクトと、半径 0.5f メートルの (1,0) のボールを作成しました。

//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 メートル離れていると計算する理由を知っている人はいますか?

4

1 に答える 1

1

ポリゴン形状の引数は「半幅」と「半高」です。これは、box2d からの奇妙な持ち越しの 1 つであり (こちらのマニュアルを参照)、最も直感的な動作ではありません。試す:

cs.setAsBox(width / 2, height / 2);
于 2014-01-14T18:00:49.050 に答える