Я использую cocos2d JS 3,8 с физикой бурундука, я пытаюсь фильтровать столкновения, но это не работает, я поставил shape.categoryBits =1;shape.maskBits =2;
для игрока и shape.categoryBits =3;shape.maskBits =4;
врагов , но они по-прежнему сталкивающихся , Я сделал что-то не так?Cocos2D столкновения фильтр расслоения плотной Бурундук
0
A
ответ
0
Я не уверен в js, но считаю, что обнаружение столкновения такое же, как в Cocos2d-x.
Итак, попробуйте установить shape.categoryBits = 1; shape.maskBits = 1;
для игрока и shape.categoryBits = 2; shape.maskBits = 2;
для врагов. В этом случае герой не должен сталкиваться с врагами, но враги должны сталкиваться друг с другом.
Основная идея является условием для не-сталкивающихся объектов:
(shapeA.categoryBits & shapeB.maskBits == 0) || (shapeB.categoryBits & shapeA.maskBits == 0)
Но теперь у вас есть (0001 & 0100 == 0) || (0011 & 0010 == 0)
ложен, потому что 0011 & 0010 = 0010
, и условие не выполняется.