Когда вы обновляете положение вашего объекта (шара), вы хотите проверить, не выходит ли новое значение за пределы (и какая из них верхняя \ нижняя или левая \ правая). Если это действительно выходит за границы, переверните правильный элемент в вашем векторе скорости.
пример: если мяч прошел левую границу, то BallSpeed.X = -BallSpeed.X
не забудьте обновить позицию мяча с новой скоростью, а не со старой в этой точке, иначе он улетит с экрана для текущего кадра (если это не проблема).