Ich benutze die Box2D-Physik-Engine. Und es gibt eine Form für box2D namens b2PolygonShape.
In dieser Klasse können Sie Polygone erstellen. Es gibt auch eine Set () - Funktion, die ein Array von Punkten und eine Scheitelpunktanzahl verwendet.
Box2D hat ein Beispiel wie dieses:
// 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);
Das funktioniert. Als ich jedoch versuchte, diese Funktion zu üben und zu spielen, tat ich Folgendes:
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);
Als ich dies kompilierte und ausführte, stürzte es nach der Set () - Funktion ab. Würde dies nicht ein Quadrat schaffen?
Auch in der Konsole habe ich folgendes bekommen:
Assertion failed: s > 0.0f
Was habe ich falsch gemacht?