最近在学习TieldMap和物理引擎使用,但是好像发现一个不知道是不是BUG的东西

如下图,是我在Tield中设计的简单地图。

但是,但当我导入cocos2d-x中,用一个Sprite绑定了PhySics执行以下代码的时候,obt1的位置出现明显的偏差。
代码如下:
//获取障碍
auto pObt = pMap->getObjectGroup("Obtacles");
auto pValMap_obt_1 = pObt->getObject("Obt_1");
auto pValMap_obt_2 = pObt->getObject("Obt_2");
auto pSp_obt_1 = Sprite::create();
pSp_obt_1->setAnchorPoint(Point::ZERO);
pSp_obt_1->setTextureRect(Rect(0,0,pValMap_obt_1"width"].asFloat(),pValMap_obt_1"height"].asFloat()));
pSp_obt_1->setColor(Color3B::BLACK);
pSp_obt_1->setPosition(pValMap_obt_1"x"].asFloat(),pValMap_obt_1"y"].asFloat());
//绑定body
pSp_obt_1->setContentSize(Size(pValMap_obt_1"width"].asFloat(),pValMap_obt_1"height"].asFloat()));
pSp_obt_1->setPhysicsBody(PhysicsBody::createEdgeBox(pSp_obt_1->getContentSize()));
pSp_obt_1->getPhysicsBody()->setDynamic(false);
this->addChild(pSp_obt_1);
```
显示情况如图:
但是很奇怪的事情,一旦我吧绑定PhySicsBody的代码注释后 ,显示的位置又恢复正常
代码如下:
//获取障碍
auto pObt = pMap->getObjectGroup("Obtacles");
auto pValMap_obt_1 = pObt->getObject("Obt_1");
auto pValMap_obt_2 = pObt->getObject("Obt_2");
auto pSp_obt_1 = Sprite::create();
pSp_obt_1->setAnchorPoint(Point::ZERO);
pSp_obt_1->setTextureRect(Rect(0,0,pValMap_obt_1"width"].asFloat(),pValMap_obt_1"height"].asFloat()));
pSp_obt_1->setColor(Color3B::BLACK);
pSp_obt_1->setPosition(pValMap_obt_1"x"].asFloat(),pValMap_obt_1"y"].asFloat());
//绑定body
//pSp_obt_1->setContentSize(Size(pValMap_obt_1"width"].asFloat(),pValMap_obt_1"height"].asFloat()));
//pSp_obt_1->setPhysicsBody(PhysicsBody::createEdgeBox(pSp_obt_1->getContentSize()));
//pSp_obt_1->getPhysicsBody()->setDynamic(false);
this->addChild(pSp_obt_1);
```
显示情况如下图:
不知道这到底是BUG还是有代码部分我没理解清楚,求大牛们解答。。谢谢。。