मैं Box2D भौतिकी इंजन का उपयोग कर रहा हूं। और बॉक्स 2 डी के लिए आकृति का एक प्रकार है जिसे b2PolygonShape कहा जाता है।
इस वर्ग में, आप बहुभुज बना सकते हैं। इसमें एक सेट () फ़ंक्शन भी होता है जो पॉइंट्स की एक सरणी और एक शीर्ष गिनती लेता है।
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);
जब मैंने इसे संकलित और चलाया, तो यह सेट () फ़ंक्शन के बाद क्रैश हो गया। क्या यह एक वर्ग नहीं बनाएगा?
कंसोल में भी मुझे यह मिला:
Assertion failed: s > 0.0f
मैंने गलत क्या किया?