PhysicsBody与Sprite 脱离反向运动,在地图滚动时

当调用setViewpointCenter方法进行设置scene位置时,PhysicsBody与Sprite 脱离,并反向运动,如何才能保持PhysicsBody与Sprite 不脱离。版本为3.15.1.

void MainScene::setViewpointCenter(Vec2 position) // 通过设置scene位置来抵消sprite运动,实现地图滚动
{

// 求出屏幕的范围包括宽和高
Size winSize = CCDirector::getInstance()->getWinSize();
//显示屏幕中心点的坐标大于屏幕宽和高的一半
int x = MAX(position.x, winSize.width / 2);
int y = MAX(position.y, winSize.height / 2);

//求出的是整个瓦片地图的宽
//_tileMap->getMapSize().width瓦片地图横向有多少个瓦片
//_tileMap->getTileSize().width每一个瓦片的宽度
int mapWidth = map->getMapSize().width * map->getTileSize().width;
int mapHeight = map->getMapSize().height *map->getTileSize().height;

x = MIN(x, mapWidth - winSize.width / 2);
y = MIN(y, mapHeight - winSize.height / 2);

//目标点
Vec2 actualPoint = Vec2(x, y);

//屏幕的中心点
Vec2 viewCenterPoint = Vec2(winSize.width / 2, winSize.height / 2);
//计算出重置显示屏幕的中心点
//ccpSub 返回的是viewCenterPoint.x - actualPoint.x和viewCenterPoint.y - actualPoint.y
Vec2 viewPoint = viewCenterPoint-actualPoint;
//重置显示屏幕的中心点

this->setPosition(viewPoint); 

}

求帮助,多谢各位大神了。

不太了解这块!支持一下!谁会给解决一下

谢谢您~

是我问的问题太low 了 ,大神们不愿意回答嘛?