您的位置:首页 > 其它

Box2d CreateFixture 发生错误 Debug Error:R6025 pure virtual function call 解决办法

2014-01-23 10:07 555 查看
发生该错误的原因是出在ShapeDef.shape上,在创建shape的时候不要将它创建在和ShapeDef同级的域当中,例如下面的写法就会引发异常:

b2FixtureDef boxDef;

    if (isCircle)
    {
        b2CircleShape circle;
        circle.m_radius = sprite->getContentSize().width/2.0f/PTM_RATIO;
        boxDef.shape = &circle;
    }
    else
    {
        b2PolygonShape box;
        box.SetAsBox(sprite->getContentSize().width/2.0f/PTM_RATIO, sprite->getContentSize().height/2.0f/PTM_RATIO);
        boxDef.shape = &box;
    }


以下写法可避免异常:

b2CircleShape circle;
    b2PolygonShape box;
    if (isCircle)
    {
        circle.m_radius = sprite->getContentSize().width/2.0f/PTM_RATIO;
        boxDef.shape = &circle;
    }
    else
    {
        box.SetAsBox(sprite->getContentSize().width/2.0f/PTM_RATIO, sprite->getContentSize().height/2.0f/PTM_RATIO);
        boxDef.shape = &box;
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: