刚体碰撞的瞬间设置静止问题

想让物体在发生碰撞的瞬间静止
使用了setDynamic()函数,最后各种报错
auto contactListener = EventListenerPhysicsContact::create();

contactListener->onContactBegin = =](PhysicsContact& contact) -> bool
{
    return true;
};
contactListener->onContactPostSolve = =](PhysicsContact& contact, const PhysicsContactPostSolve& solve)
{
    contact.getShapeA()->getBody()->setDynamic(false);
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);

Aborting due to Chipmunk error: This operation cannot be done safely during a call to cpSpaceStep() or during a query. Put these calls into a post-step callback.
Failed condition: !space->locked

求大神讲解:3:

别沉:12:

我刚解决这个问题,你在update()里面设置静止就行了,具体为什么我也不清楚,我猜测是同时调用了一个资源,或者这个资源正在被调用,把自己锁起来了。

希望有大神能够帮忙解释清楚