Используя cocos2d-x v3.2, у меня есть буксируемые динамические тела bodyA и bodyB. А bodyB не имеет силы тяжести и имеет линейную скорость по оси x. bodyA имеет импульс по оси y. Проблема заключается в том, что bodyA проходит через bodyB. Ожидаемый результат: bodyA сталкивается с bodyB, bodyA отскакивает, а bodyB не влияет на столкновение. Вот пример кода, где bodyA проходит через bodyB.Два динамических тела, пересекающихся или пересекающихся в cocos2d-x v3.2
PhysicsBody *bodyA = PhysicsBody::createCircle(spriteA->getContentSize().width/2);
bodyA->setDynamic(true);
bodyA->setMass(0.5f);
bodyA->setCategoryBitmask(1);
bodyA->setContactTestBitmask(true);
PhysicsBody *bodyB = PhysicsBody::createCircle(spriteB->getContentSize().width/2);
bodyB->setDynamic(true);
bodyB->setGravityEnable(false);
bodyB->setVelocity(Vect(100,0));
bodyB->setCollisionBitmask(2);
bodyB->setContactTestBitmask(true);
bodyB->setMass(5.0f);
Спасибо. Я установил это для bool после просмотра [видео] (https://www.youtube.com/watch?v=ow91oT5uIp0&list=PLRtjMdoYXLf4dOgNrnQCw1DyIFGUhnVtZ&index=7). Я редактировал свой код, как вы предлагали, но все тот же результат. – SaffronState
попробуйте без установки битмаски – LearnCocos2D
Без набора битмасок на тело B попадает столкновение с телом A и уходит. И мое требование - тело B не должно уходить (вдоль оси y) после столкновения с телом A, которое движется вдоль оси y. bodyB должен двигаться только линейной скоростью. – SaffronState