Можно просчитывать время (кадры) через которое произойдет столкновение. Особенно полезно при большой скорости.
Можно найти уравнение прямой по двум точкам формуле

Код:
(x-x1)/(x2-x1) = (y-y1)/(y2-y1)
где две точки имеют координаты (x1,y1) и (x2,y2)
То есть первая точка - начальное положение шарика, а вторая - то, куда он переместиться при данной скорости.
По этому уравнению можно посчитать, с каким блоком и через сколько кадров столкнется шарик (даже если просто проверять точки на этой прямой на хиттест с блоком, с шагом, скажем, 2 пикселя)
В тот кадр, когда по нашим вычислениям происходит столкновение, принудительно ставим шарик на границу с блоком, проводим изменения скорости (умножение на -1 отдельных составляющих, как у Вас уже есть) и все, в целом вот