質問

2つのボディ(1つの動的と1つの静的)間の衝突に問題があります。壁とボールがあるとしましょう。ボールが壁を通過できるようにフィルターをセットします。壁の体の外側の体でスプライトを作成する限り、それはうまく機能します。問題は、壁と同じ位置でボールを作成すると、ボールが詰まったり跳ね返ったり、奇妙なことをしたりするときに現れます。衝突フィルターがある場合、どこで体を作成するかは関係ないはずだと思います。似たような問題がありましたか?

役に立ちましたか?

解決 2

なぜ問題が現れるのかはまだわかりませんが、BoxBodyとCircleBodyを作成するとそれが起こることを知っています。ボックスボディの代わりにポリゴンボディを使用してこの問題を解決しました。これがポリゴンボディからボックスを作成する私のコードです。

float a = this.getWidthScaled()*0.5f/32.0f;
float b = this.getHeightScaled()*0.5f/32.0f;
Vector2[] v = {new Vector2(-a,-b), 
               new Vector2(a,-b),
               new Vector2(a,b),
               new Vector2(-a,b)};
body = PhysicsFactory.createPolygonBody(pWorld, this, v, BodyType.DynamicBody, mFixtureDef);

他のヒント

かなり遅れていますが、マスキングを使用して同様の問題を回避しました

http://www.aurelienribon.com/blog/2011/07/box2d-tutorial-clollision-filtering/

乾杯。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top