ฉันใช้เครื่องยนต์ฟิสิกส์ 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
ผมทำอะไรผิด?