V3.17SDK碰撞体穿墙问题

BOX动态刚体的有两个面(左面和下面),会被推到静态刚体另一端
上面和右面表现正常

加宽边界无效
采用Box碰撞器无效
降低人物移动速度无效

化简项目后又可以了,碰撞效果是OK的,具体原因待查明

主要源码
//Player刚体
auto body=PhysicsBody::createBox(playerNode->getBoundingBox().size);
body->setDynamic(true);
body->setRotationEnable(false);
body->setCategoryBitmask(0x01);
body->setContactTestBitmask(UINT_MAX);
playerNode->addComponent(body);
//Player移动,采用Action
void Player::Move(cocos2d::Vec2 p)
{
playerNode->cleanup();
speedforward += p;
if (speedforward.equals(Vec2::ZERO))
return;
playerNode->runAction(RepeatForever::create(MoveBy::create(0.01, speedforward)));
}
//Player翻转
void Player::Forward(cocos2d::Vec2 f)
{
if (f.x < 0) {
playerNode->setScaleX(-1);
f.x = -f.x;
}else {
playerNode->setScaleX(1);
}
}
//增加碰撞框
auto testNode = Node::create();
auto testCollider = PhysicsBody::createEdgeBox(Size(100, 100),PhysicsMaterial(0,0,0),1);
testCollider->setCategoryBitmask(0x04);
testCollider->setCollisionBitmask(UINT_MAX);
testNode->addComponent(testCollider);
testNode->setPosition(p1->playerNode->getPosition());
addChild(testNode);

调用moveby来设置刚体位置的问题吧,一般是受力或设速度,冲量这样