Войти
ПрограммированиеФорумФизика

Маска/группы коллизий Box2D

#0
0:49, 5 янв. 2014

Доброго времени суток.
Представим, в игровом мире существуют союзники, отметим их группой А. Пули, выпущенные группой А должны задевать всё, кроме группы А, а значит пули, выпущенные группой А, тоже должны быть помечены, как А. Но, в таком случае, получается, что союзники из группы А не могут сталкиваться. А надо, чтобы сталкивались. Как это реализовать? Спасибо.


#1
2:53, 5 янв. 2014

DummyUA
> Как это реализовать?
Не делить юнитов на группы коллизий, а френдли файер фильтровать в ContactListener::PreSolve().

#2
9:50, 5 янв. 2014

RPGman
> френдли файер фильтровать в ContactListener::PreSolve().
нет, правильнее в ContactFilter::ShouldCollide

#3
15:19, 5 янв. 2014

SunnyBunny
> нет, правильнее в ContactFilter::ShouldCollide
Согласен, для данной задачи ContactListener избыточен.

#4
15:54, 5 янв. 2014

RPGman, SunnyBunny, спасибо за оперативный ответ и хороший вариант решения.
Удалось решить проблему с использованием categoryBits + maskBits, мощная штука.

ПрограммированиеФорумФизика

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