Sto usando il motore fisico Box2D. E c'è un tipo di forma per box2D chiamato b2PolygonShape.
In questa classe, puoi creare poligoni. C'è anche una funzione Set () che accetta una matrice di punti e un conteggio dei vertici.
Box2D ha un esempio come questo:
// 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);
Questo funziona Tuttavia, quando ho cercato di esercitarmi e confondere con questa funzione, ho fatto questo:
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);
Quando ho compilato ed eseguito questo, si è arrestato in modo anomalo dopo la funzione Set (). Questo non creerebbe un quadrato?
Anche nella console ho ottenuto questo:
Assertion failed: s > 0.0f
Cos'ho fatto di sbagliato?