dx always -0 because we were either perfectly overlapping (no opposite direction to go) or just touching (not overlapping at all)