diff --git a/Ball.cpp b/Ball.cpp index 0103ceb..9b13459 100644 --- a/Ball.cpp +++ b/Ball.cpp @@ -31,10 +31,10 @@ void Ball::_compute_pos(double dt) { ); } else { double n_time = crt_time - stop_bouncing; - Center.y = ((radius * (1.0 - exp(-n_time)) + radius)/2.) + (radius - - ((radius * (1- exp(-n_time)) + radius)/2.)) * sin(5. * n_time); - v_x *= 0.99; - v_z *= 0.99; + double min_rad = radius - min_height; + Center.y = min_height + ((min_rad * (1.0 - exp(-n_time)) + min_rad )/2.) + + (min_rad - ((min_rad* (1- exp(-n_time)) + min_rad)/2.)) * sin(5. * + n_time); } Center.x += dt * v_x; Center.z += dt * v_z;