No seu jogo já aconteceu da bola ficar kikando de um lado para o outro? se sim como resolveu?
Opa... vc diz em linha reta de uma lado para o outro, né? Se for isso, eu coloquei uma verificação para as colisões nas paredes. Quando tem uma colisão na parede, incrementa um contador, caso a próxima colisão não seja na parede, o contador é zerado, se for na parede, incrementa novamente. Se este contador atingir o valor 3 ( indica 3 colisões seguidas com a parede) eu uso um random_range(20,160) e atribuo o resultado como nova direction para o objeto bola.