私はlibgdxを勉強していて、実際に私のレイキャスティングを混乱させるものの1つです。私はそれを使う方法のチュートリアルを読んで理解していますが、本当に背中のものを知りたいのです。私はこのメソッドのソースコードを探しました。レイキャストの仕組みを教えてもらえますか?
public void rayCast (final RayCastCallback callback, float point1X, float point1Y, float point2X, float point2Y) { // FIXME pool RayCastCallback?
world.raycast(new org.jbox2d.callbacks.RayCastCallback() {
@Override
public float reportFixture (org.jbox2d.dynamics.Fixture f, Vec2 p, Vec2 n, float fraction) {
return callback.reportRayFixture(fixtures.get(f), point.set(p.x, p.y), normal.set(n.x, n.y), fraction);
}
}, this.point1.set(point1X, point1Y), this.point2.set(point2X, point2Y));
} どのように我々は、この方法は、自分自身を再帰的に呼び出し、コールバック変数のreportRayFixtureへの呼び出しを返す見ることができます。私が実際に混乱させたのは、コードがFixtureを選択する場所と、そのフィクスチャがどのようにチェックするかです。誰かが本当にその仕組みを私に説明することができますか?
私はそれを感謝します!
gwtを使用していない限り、間違ったコードが表示されています。あなたが参照しているコードはgwtバックエンド用です。これはjbox2dを使用する特殊なケースです。他のすべてのバックエンドは通常の(ネイティブ)box2dライブラリを使用します。 – Xoppa