Esta manera es la que yo logre hacer que rebote, tarde 3 horas pero la logre de esta manera, quisiera saber si es correcto la funcionalidad.
<canvas width="600" height="400"> </canvas>
<script>
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = "lightgrey";
pincel.fillRect(0,0,600,400);
function disenharCircunferencia(x,y,radio){
pincel.fillStyle = "blue";
pincel.beginPath();
pincel.arc(x,y,radio,0,2*Math.PI);
pincel.fill();
}
function limpiarPantalla(){
pincel.clearRect(0,0,600,400);
}
var x = 0
var cont = 0
function actualizarPantalla(){
cont++;
if(cont < 600){
limpiarPantalla();
disenharCircunferencia(x,40,10);
x++;
} if(cont > 600){
limpiarPantalla();
disenharCircunferencia(x,40,10);
x--
}
if(cont > 1200){
cont = 0
}
console.log(cont)
}
setInterval(actualizarPantalla,5);
</script>