Better collision detection and jumpping, but still not quite right