я использую cocos2d-iphone-0.99.2 и интегрированный в него box2d. у меня есть 2 типа спрайтов с тегами 1 и 2. Также я создал тела и определения формы для них. то, что я пытаюсь сделать, это заставить виды sprite1 действовать как твердые или действовать как нетвердые, когда sprite2 сталкивается с ними. я пробовал этот код:
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext())
{
if (b->GetUserData() != NULL)
{
CCSprite *sprite = (CCSprite *)b->GetUserData();
if (sprite.tag == 1)
{
b2Fixture* f = b->GetFixtureList();
f->SetSensor(solid);
}
}
}
Где solid - это bool. В первый раз, когда я меняю приспособление на датчик, все в порядке, но когда я пытаюсь вернуться и снова изменить его на сплошное, мое приложение вылетает со следующей ошибкой: Утверждение не выполнено: (manifold->pointCount > 0), функция b2ContactSolver, файл /Documents /myapp/libs/Box2D/Dynamics/Contacts/b2ContactSolver.cpp, строка 58.
Можно ли как-то несколько раз менять фикстуру->SetSensor и если да... то как? Любая помощь высоко ценится.