Для того, чтобы остановить движение physicsBody, вы можете использовать переменный «скорость», как так:
//this will reset the x, y based velocity to a halt/stop
player.physicsBody?.velocity = CGVectorMake(0, 0)
//if you would also like to stop any rotation that may be present
player.physicsBody?.angularVelocity = 0
Для решения второго вопроса вы должны смотреть на «linearDamping», чтобы повлиять на скорости и «угловой удар» для воздействия на угловую подвижность (вращение). Эти параметры physicalBody позволяют замедлять скорость с течением времени после применения импульса (аналогично трению).
//These values should be set when creating the physicsBody.
//should experiment with these values to get the desired effect.
player.physicsBody?.linearDamping = 1.10
player.physicsBody?.angularDamping = 0.25