From e148338d428de9d23517c5410853a94dc72458ff Mon Sep 17 00:00:00 2001 From: Keegan Owsley Date: Tue, 25 Aug 2020 19:00:23 -0700 Subject: Wrap angles to (-pi, pi) in momentum calculation. Fixes a bug that causes KinematicBody2Ds to produce too much angular momentum when rotating beyond 180 degrees. --- servers/physics_2d/body_2d_sw.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp index 856bba78f7..75c9a95739 100644 --- a/servers/physics_2d/body_2d_sw.cpp +++ b/servers/physics_2d/body_2d_sw.cpp @@ -468,7 +468,7 @@ void Body2DSW::integrate_forces(real_t p_step) { linear_velocity = motion / p_step; real_t rot = new_transform.get_rotation() - get_transform().get_rotation(); - angular_velocity = rot / p_step; + angular_velocity = remainder(rot, 2.0 * Math_PI) / p_step; do_motion = true; -- cgit v1.2.3