シーン内の別のボディと衝突するために、多くの頂点を持つボディを作成しています。これは で行われますがb2ChainShape
、最初にそのチェーンの単一のエッジを作成してみました (v2v
は座標変換方法です)。
b2Vec2 v1 = [U v2v:CGPointMake(0, 150)];
b2Vec2 v2 = [U v2v:CGPointMake(50, 150)];
b2EdgeShape shape;
shape.Set(v1, v2);
これは期待どおりに機能します。他のボディがこのエッジと衝突します。奇妙なことに、チェーン シェイプに同じ頂点を使用すると、衝突が発生しません。
b2Vec2 vertices[2];
vertices[0] = [U v2v:CGPointMake(0, 150)];
vertices[1] = [U v2v:CGPointMake(50, 150)];
b2ChainShape shape;
shape.CreateChain(vertices, 2);
理由はありますか?チェーンは異なる座標系を使用していますか?