У нас есть два вектора светильников (все из одного тела)
//Create and add fixtures to vector1 and vector2
b2PolygonShape shape1;
shape1.SetAsEdge(from1,to1);
vector1.push_back( body1->CreateFixture(&shape1,0) );
b2PolygonShape shape2;
shape2.SetAsEdge(from2,to2);
vector2.push_back( body2->CreateFixture(&shape2,0) );
Когда происходит событие1, мы уничтожаем первый прибор в векторе 1.
body1->DestroyFixture( vector1[0] ); //destroy first fixture1
vector1.erase( vector1.begin() ); //remove from vector1
В случае события2 мы уничтожаем первый прибор в векторе 2.
body2->DestroyFixture( vector2[0] ); //destroy first fixture2
vector2.erase( vector2.begin() ); //remove from vector2
Проблема:
Иногда, когда мы уничтожаем Fixture (...), мы получаем " Утверждение не удалось: (fixture-> m_body == this) "
Я проверил, и я знаю, что у вектора1 может быть какое-то приспособление2, или у вектора2 есть приспособление1. Почему это может быть?
Я добавляю fixture1 только в vector1, а fixture2 только в vector2.