2015-11-05 3 views
0

Я использую cocos2d JS 3,8 с физикой бурундука, я пытаюсь фильтровать столкновения, но это не работает, я поставил shape.categoryBits =1;shape.maskBits =2; для игрока и shape.categoryBits =3;shape.maskBits =4; врагов , но они по-прежнему сталкивающихся , Я сделал что-то не так?Cocos2D столкновения фильтр расслоения плотной Бурундук

ответ

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, и условие не выполняется.