私は Box2d を初めて使用し、凹面ポリゴンをサポートしていないことを知りました。この問題を回避するために読んだことがあります。2 つ (またはそれ以上) の凸多角形を使用し、それらを同じ形状に適用する必要があります。
残念ながら、これを行う方法の例を何時間も探しましたが、機能するものを見つけることができません. 私のコードは次のとおりです。
b2PolygonShape spriteShape;
int num = 6;
b2Vec2 verts[] = {
b2Vec2(-32.5f / PTM_RATIO, 52.0f / PTM_RATIO),
b2Vec2(-60.0f / PTM_RATIO, 26.5f / PTM_RATIO),
b2Vec2(-58.5f / PTM_RATIO, 17.5f / PTM_RATIO),
b2Vec2(-34.5f / PTM_RATIO, 7.5f / PTM_RATIO),
b2Vec2(-11.0f / PTM_RATIO, 25.0f / PTM_RATIO),
b2Vec2(-17.5f / PTM_RATIO, 47.5f / PTM_RATIO)
};
spriteShape.Set(verts, num);
int num2 = 6;
b2Vec2 verts2[] = {
b2Vec2(-26.5f / PTM_RATIO, 1.0f / PTM_RATIO),
b2Vec2(-34.0f / PTM_RATIO, -13.5f / PTM_RATIO),
b2Vec2(-26.5f / PTM_RATIO, -32.0f / PTM_RATIO),
b2Vec2(0.5f / PTM_RATIO, -42.5f / PTM_RATIO),
b2Vec2(49.0f / PTM_RATIO, -40.5f / PTM_RATIO),
b2Vec2(49.5f / PTM_RATIO, -14.0f / PTM_RATIO)
};
spriteShape.Set(verts2, num2);
これは、最初のポリゴンを結合するのではなく、2 番目のポリゴンでオーバーライドするだけです。代わりにそれらをどのように組み合わせることができますか?