Cocos2d-x中Sprite与Box2D中b2body位置不一致问题

最近在学习Box2d,遇到一个问题,就是创建的sprite的位置和b2body的位置不一致,所以想请大大们帮忙看看。相关部分代码

Sprite* HelloWorld::createPhySprite(b2World* pWorld){
    //创建一个测试sprite
    auto pSp  = Sprite::create();
   pSp->setAnchorPoint(Vec2::ZERO);
    pSp->setPosition(Vec2(Director::getInstance()->getVisibleSize()/2));
    pSp->setContentSize(Size(1*PIXEL_TRANS_RADIO, 1*PIXEL_TRANS_RADIO));
//    pSp->gets
    pSp->setTextureRect(Rect(0,0,pSp->getContentSize().width,pSp->getContentSize().height));
    pSp->setTag(TAG_TEST);
    
    //创建body描述
    b2BodyDef* pBd  = new b2BodyDef();
    pBd->active = true;
    pBd->type = b2BodyType::b2_staticBody;
    pBd->bullet = false;
   pBd->position.Set(pSp->getPosition().x/PIXEL_TRANS_RADIO, pSp->getPosition().y/PIXEL_TRANS_RADIO);
    
    //创建fixture描述
    b2FixtureDef* pFd =  new b2FixtureDef();
    b2PolygonShape* pRect = new b2PolygonShape();
    
    //setAsBox设置的是半高和半宽
    pRect->SetAsBox((pSp->getContentSize().width/2)/PIXEL_TRANS_RADIO,(pSp->getContentSize().height/2)/PIXEL_TRANS_RADIO);
    
    pFd->shape = pRect;
    b2Body *pB = pWorld->CreateBody(pBd);
    pB->CreateFixture(pFd);
    pB->SetUserData(pSp);
    return pSp;
}

```


PS:其中的PIXEL_TRANS_RADIO为像素到米的转换值,值是30
    
   
最后的效果图如下:
 
可以看到sprite的位置和刚体的位置有明显的不一致。

:10::10::10::10:难道是问题太白痴了么 。。求大大解答

pSp->setAnchorPoint(Vec2::ZERO);
去掉试试

你好前辈,把设置锚点这句注释或,位置偏移的更厉害如下图

:12::12::12:再来顶一发

先把sprite和刚体位置都设置成(0,0)
然后再添加一个(100,100)的
对比一下看看问题在哪里,如果(0,0)就不对就说明debugDraw就没对齐

的确在(0,0)处就没有完全对齐,主要是大小方面debugdraw出来的大小总是要比实际sprite的大小要大点。