Box2D fizik motorunu kullanıyorum. Ve box2D için b2PolygonShape adı verilen bir şekil var.
Bu sınıfta çokgenler oluşturabilirsiniz. Bir dizi nokta ve bir tepe noktası sayısı alan bir Set () işlevi de vardır.
Box2D'nin böyle bir örneği var:
// 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);
Bu çalışıyor. Yine de bu işlevle pratik yapmaya ve karışıklığa uğramaya çalıştığımda bunu yaptım:
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);
Bunu derleyip çalıştırdığımda, Set () işlevinden sonra çöktü. Bu bir kare oluşturmaz mı?
Ayrıca konsolda bunu aldım:
Assertion failed: s > 0.0f
Neyi yanlış yaptım?