Ok I have been playing around with the values, and come to the conclusion that this function is absolutely wack.

When using GetBoundsRect function and returning the result as Bounds(Left, Top, Width, Height).

The Left and Top are basicallly treated as his X and Y (if you set them to 0, he can't move).

Only the Width and Height, affect what part of his imagery that is collisions and it can *only* allow him to walk through stop of his bottom half, or on his right.

Doign the opposite, simply increases his bounds (so like sticking an invisible wall on opposite sides so it collisions earlier than it should).

No amount of mixing and matching can get the desired effect.

Either this function doesn't do what I think it does, or it is seriously screwed up lol.