i can't believe no one has done this before.

I tested it and it seems promising.

I checked your code and would like to see it tested with more objects in the world. (EDIT:currently testing myself and it isn't working the same. i'll keep working on it.) I'll be using this ethod from now on if is continues to work so well. Smooth and unbuggy just how i like it. Major props.