ApplyImpulse ()
вместо ApplyForce ()
работает намного лучше.
Другой способ сделать это - установить linearDamping
на вашем теле. Вы можете установить это по-разному в зависимости от плитки, на которой находится ваш объект.
Трение направлено против скорости тела, независимо от других сил.
Если установки линейного демпфирования недостаточно или использование свойства b2Body неуместно, вы можете легко вычислить нелинейные силы трения и вызывать ApplyLinearImpulse () или ApplyLinearForce () в каждом кадре.
Запросить скорость с помощью b2Body.GetLinearVelocity (), масштабировать (нелинейно) результат по желанию, чтобы получить силу, и поменять знак обоих компонентов.
Если вы решите остановить тело (когда оно достаточно медленное, чтобы закрепиться), SetLinearVelocity () сделает это без вычислений.