关于cocos2dx 3.3 addJoint 奔溃的问题

:13:这两天因需求问题,需要用到 PhysicsJointPin 别针关节。代码如下:


    Node *ladder = Node::create();
    ladder->setPosition(Vec2(100 , 200));
    addChild(ladder);
    auto border = PhysicsBody::createEdgeSegment(Vec2(-ladder->getContentSize().width/2+3, ladder->getContentSize().height/2),
                                                     Vec2(-ladder->getContentSize().width/2+3, -ladder->getContentSize().height/2));
    ladder->setPhysicsBody(border);
    
    // 固定点
    auto dotNode = Node::create();
    dotNode->setPosition(Vec2(ladder->getBoundingBox().getMinX(), stepR->getBoundingBox().getMaxY()));
    dotNode->setPhysicsBody(PhysicsBody::createCircle(1));
    dotNode->getPhysicsBody()->setDynamic(false);
    dotNode->getPhysicsBody()->setCategoryBitmask(0x0);
    addChild(dotNode);
    // 别针关节
    auto joint = PhysicsJointPin::construct(ladder->getPhysicsBody(), dotNode->getPhysicsBody(), dotNode->getPosition());
    addJoint(joint);

:10:结果到最后一句 addJoint时就报错。。百思不得其解!!:3:

最后通过编写demo反复对比验证得出结论:2:

构建关节所需的两个body必须都是实心的形状,而不可以是边界围城的空心形状(带 Edge 字眼的)!! 感觉巨坑:8:

我也遇到这个问题了,虽然还么搞清楚原因,但是抄了下楼主的代码可以运行了:904:

在研究研究