使用的是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);
```