静态刚体我放在layer中,layer左移与刚体碰撞,为什么刚体会有一部分陷入静态刚体中?
见图
auto playerBody = PhysicsBody::createBox(_player->getContentSize(), PhysicsMaterial(0.99f, 0.0f, 0.0f));
playerBody->setCategoryBitmask(0xff);
playerBody->setContactTestBitmask(0xff);
playerBody->setCollisionBitmask(0xff);
playerBody->setGravityEnable(true);
_player->setPhysicsBody(playerBody);
小方块是这个
auto body = PhysicsBody::createEdgeBox(sprite_Block->getContentSize(),PhysicsMaterial(1.0f, 0.0f, 1.0f),0);
body->setCategoryBitmask(0xff);
body->setContactTestBitmask(0xff);
body->setCollisionBitmask(0xff);
sprite_Block->setPhysicsBody(body);
大柱子是这个
我尝试了一下 不移动静态刚体 只移动刚体 ,并不会撞进去 这都是为什么 算是bug吗?
还有个问题 如果已经在旁边了 我继续向里面撞 还是会撞进静态刚体的内部,这又是因为什么
你这个好比子弹打入物体。
可以用box2d的方法:void SetBullet(bool flag)
/// Should this body be treated like a bullet for continuous collision detection?
void SetBullet(bool flag);
/// Is this body treated like a bullet for continuous collision detection?
bool IsBullet() const;
谢谢您的帮助 不过我仍有一点疑问
1,physicbody是cocos对物理引擎的一个封装,它并没有setBullet选项,是因为chipmunk没有这种选项吗?
2,子弹打入物体 那么子弹是刚体 物体是静态刚体才对,我在2楼描述的情况是刚体本身不动,静态刚体伴随layer左移,此时会造成陷入问题。若静态刚体不动,动态刚体撞击静态刚体,并没有陷入静态刚体内部。这是为什么?因此是不是不太建议静态刚体随着layer运动呢?
再次感谢您的帮助