实现物理世界时出现一个奇怪的现象

程序实现一个小球和多边形物体从高处下落撞击金字塔,但是只有小球和金字塔会碰撞,多边形不会,并且多边形和小球也不会碰撞,

多边形直接穿过了这些物体,很奇怪
创建多边形刚体代码:
b2BodyDef bodyDef;
if(!iStatic)
{
bodyDef.type=b2_dynamicBody;
}

    bodyDef.position.Set(data/PIXTOMETER,data/PIXTOMETER);
    m_body=world->CreateBody(&bodyDef);
    m_body->SetUserData(id);
    int count = (int)data;

    b2Vec2 vec;
    for (int i=0;i<count;i++)
    {
        vec*.Set(data*/PIXTOMETER,data*/PIXTOMETER);
    }

    int32 vcount = count;
    b2PolygonShape dynamicBox;
    dynamicBox.Set(vec,vcount);
    if(!iStatic)
    {
        b2FixtureDef fixtureDef;
        fixtureDef.shape=&dynamicBox;
        fixtureDef.density=density;
        fixtureDef.friction=friction;
        fixtureDef.restitution=restitution;
        m_body->CreateFixture(&fixtureDef);
    }
    else
    {
        m_body->CreateFixture(&dynamicBox,0.0f);
    }

创建小球刚体代码:
b2BodyDef bodyDef;
if(!iStatic)
{
bodyDef.type=b2_dynamicBody;
}

    bodyDef.position.Set(data/PIXTOMETER,data/PIXTOMETER);
    m_body=world->CreateBody(&bodyDef);
    m_body->SetUserData(id);

    b2CircleShape dynamicCircle;
    dynamicCircle.m_radius = data/PIXTOMETER;
    if(!iStatic)
    {
        b2FixtureDef fixtureDef;
        fixtureDef.shape=&dynamicCircle;
        fixtureDef.density=density;
        fixtureDef.friction=friction;
        fixtureDef.restitution=restitution;
        m_body->CreateFixture(&fixtureDef);
    }
    else
    {
        m_body->CreateFixture(&dynamicCircle,0.0f);
    }

http://pan.baidu.com/s/1qgUfW,1

http://pan.baidu.com/s/1qgUfW