关于物理引擎,边界碰撞检测的问题

使用的是cocos2dx 3.8,自带的物理引擎,做的一个小游戏。利用物理世界,与重力感应完成小球的移动。
现在遇到的问题是,利用重力感应改变小球的坐标,在碰撞到边界的时候,小球会不停的抖动,我应该如何做,能够在检测到边界碰撞的时候,停止小球移动呢?

小球移动的代码:

 Device::setAccelerometerEnabled(true);
    auto listener = EventListenerAcceleration::create(=](Acceleration* acc, Event* event){
        
//        float posX = m_pBall->getPositionX();
//        posX += acc->x;
        //根据重力感应,小球移动,旋转
        float _posX = m_pBall->getPositionX();
        _posX += acc->x * 5;
        
        m_pBall->setPositionX(_posX);
        
        m_pBall->setRotation(_posX*8);
    });
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, m_pBall);

```

不要用setPosition,要用物理里面的力移动小球,小球的摩擦力需要设置成0,反弹系数也是0,质量设置高些,