Hola!
Yo creé una segunda función llamada volver(), para que arranque en X=600 y vaya restando de a 1 con x--. Luego llamé: primero a la función original actualizarPantalla y luego a la función volver, con la idea de que se ejecute primero una y al finalizar la otra. Pero la pelotita queda al final como rebotando.
¿Por qué no funciona la lógica?
Aquí paso mi código:
<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(); // llename la circunferencia
}
function limpiarPantalla() {
pincel.clearRect(0, 0, 600, 400);
}
var x = 0;
function actualizarPantalla() {
limpiarPantalla();
disenharCircunferencia(x, 20, 10);
x++;
}
var x = 600;
function volver(){
limpiarPantalla();
disenharCircunferencia(x, 20, 10);
x--;
}
setInterval(actualizarPantalla, 2);
setInterval(volver,2);
</script>