Tôi đang sử dụng công cụ vật lý Box2D. Và có một loại hình dạng cho box2D được gọi là b2PolygonShape.
Trong lớp này, bạn có thể tạo đa giác. Ngoài ra còn có hàm Set () lấy một mảng các điểm và số đỉnh.
Box2D có một ví dụ như thế này:
// 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);
Những công việc này. Tuy nhiên, khi tôi cố gắng thực hành và gây rối với chức năng này, tôi đã làm điều này:
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);
Khi tôi biên dịch và chạy nó, nó bị lỗi sau hàm Set (). Điều này sẽ không tạo ra một hình vuông?
Ngoài ra trong giao diện điều khiển tôi đã nhận được điều này:
Assertion failed: s > 0.0f
Tôi đã làm gì sai?