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.
This commit is contained in:
Keegan Owsley 2020-08-25 19:00:23 -07:00
parent 443686d724
commit e148338d42

View File

@ -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;