Войти
Box2DФорумОбщее

Фильтрация контактов

#0
0:45, 13 фев. 2014

Как реализовать следующее: Тело после столкновения с другим телом должно среагировать на столкновение и больше не реагировать на столкновения. Вобщем посылаю событие в PostSolve , а в классе принимаю и меняю груповой индекс:
private function f_contact_off(e:Event):void {
      trace("Контакт офф");
      var filter:b2FilterData=new b2FilterData();
      filter.groupIndex=-1;
      _body.GetFixtureList().SetFilterData(filter);
      mcBULLET.removeEventListener("CONTACT_OFF",f_contact_off);

    }

Но проблема в том что индекс применяется только после того как 2 тела перестают соприкасаться, а до этого момента всеравно тела взаимодействуют. Что делаю не так? Как правильно сделать, чтоб PostSolve сработал 1 раз и больше контакт не происходил, даже если Окончания контакта не было?


#1
0:56, 13 фев. 2014

Все разобрался, помогло contact.FlagForFiltering();

Box2DФорумОбщее

Тема в архиве.