我正在使用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
我做错什么了?