Built in physics body overlapping each other.

In cocos2dx c++ version, physics bodies are overlapping each other when I move the bodies using setVelocity. But this does not happen when I use applyForce, but I dont want my character to move like someone is pushing it. I want it to move like how objects behave when using MoveBy. Is it bug or am i doing something wrong. Pls help

if(find(heldKeys.begin(), heldKeys.end(), EventKeyboard::KeyCode::KEY_S) != heldKeys.end())
     playerBody->setVelocity(Vec2(0,-speed * dt));

this is my code and this happensScreen Shot 2020-06-30 at 1.02.36 AM

Are you using any masks?