Saya menggunakan mesin fisika Box2D. Dan ada jenis bentuk untuk box2D disebut b2PolygonShape.
Di kelas ini, Anda bisa membuat poligon. Ada juga fungsi Set () yang mengambil array titik dan jumlah titik.
Box2D memiliki contoh seperti ini:
// 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);
Ini bekerja. Namun ketika saya mencoba untuk berlatih dan mengacaukan fungsi ini, saya melakukan ini:
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);
Ketika saya mengkompilasi dan menjalankan ini, crash setelah fungsi Set (). Bukankah ini akan membuat kotak?
Juga di konsol saya mendapatkan ini:
Assertion failed: s > 0.0f
Apa kesalahan yang telah aku perbuat?