Pos changed when adding physics body into TMXLayer's sprite

Once my tmx map is loaded, i am fetching few sprites from layer which i wanted and adding physics body to them. BUT after adding physics body that particular sprite(Tile) position is moved by half of tile’s width & height(may be due to anchor point). Which seems like bug.

TMXLayer* tl = tileMap->getLayer("Tile Layer 2"); for (size_t i = 0; i < tileMap->getMapSize().height; i++) { for (size_t j = 0; j < tileMap->getMapSize().width; j++) { if (tl->getTileGIDAt(Vec2(j, i)) != 0) { Sprite *sprite = tl->getTileAt(Vec2(j, i)); sprite->setTag(tl->getTileGIDAt(Vec2(j, i))); PhysicsBody *spriteBody = PhysicsBody::createCircle(Sprite::createWithSpriteFrameName("body.png")->getContentSize().width/2, PHYSICSBODY_MATERIAL_DEFAULT); spriteBody->setCollisionBitmask(0x00000011); spriteBody->setContactTestBitmask(BODY_PART_COL_MASK); sprite->setPhysicsBody(spriteBody); } } }
After adding below line works fine
sprite->setPosition(Vec2(sprite->getPositionX() + tileWidth/2, sprite->getPositionY() + tileHeight/2));
is it bug?