Box2D物理エンジンを使用しています。そして、b2PolygonShapeと呼ばれる、box2Dのタイプの形状があります。
このクラスでは、ポリゴンを作成できます。ポイントの配列と頂点数を取得するSet()関数もあります。
Box2Dには次のような例があります。
// This defines a triangle in CCW order.
b2Vec2 vertices[3];
vertices[0].Set(0.0f, 0.0f);
vertices[1].Set(1.0f, 0.0f);
vertices[2].Set(0.0f, 1.0f);
int32 count = 3;
b2PolygonShape polygon;
polygon.Set(vertices, count);
これは機能します。それでも、この機能を練習して混乱させようとしたとき、私はこれを行いました:
b2Vec2 vertices[4];
vertices[0].Set(0, 0);
vertices[1].Set(0,10);
vertices[2].Set(10,10);
vertices[3].Set(10,0);
int32 count = 4;
b2PolygonShape polygon;
polygon.Set(vertices, count);
これをコンパイルして実行すると、Set()関数の後でクラッシュしました。これは正方形を作成しませんか?
また、コンソールでこれを得ました:
Assertion failed: s > 0.0f
私は何を間違えましたか?