Я використовую двигун фізики Box2D. І є тип форми для box2D під назвою b2PolygonShape.
У цьому класі ви можете створити багатокутники. Існує також функція 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
Що я зробив не так?