私は基本的な Box2D プログラム、より具体的にはthis oneを見ていました。
次の行を除いて、すべてが非常に単純で理にかなっています。
Shape.SetAsBox((32.f/2)/SCALE, (32.f/2)/SCALE); // SCALE = 30
で割ってSCALE
1m->30px にスケーリングすることはわかっていますが、なぜ 32.f を 2 で割るのか? ボックス テクスチャが 32x32 ピクセルの場合、2 で割る理由がわかりません。
マニュアルから:
GroundBox.SetAsBox(50.0f, 10.0f);
SetAsBox 関数は、半分の幅と半分の高さ(エクステント)を取ります
これは、ボックスが中心 (0,0) の周りに作成されるためです。
そう、
x = (32.f/2)/SCALE;
y = (32.f/2)/SCALE
SetAsBox(x,y);
(-x, -y)、(-x, y)、(x, -y)、(x, y) にコーナーがあるボックスを作成するため、予想されるサイズになります。
マニュアルのセクション 2.2 を読んだ場合: http://www.box2d.org/manual.html#_Toc258082968
SetAsBox 関数は、半分の幅と半分の高さ (エクステント) を取ります
幅 (「幅 100m」) ではなく、延長 (「各方向に 50 m」) を考慮してください。したがって、係数 2 です。