Personally for rebouding I simply inverted the appropriate velocity value for example when the ball(I was working on a pong like game at the time) collided with the top of the screen the y velocity...