Utilice un tope para identificar cuando topaba las esquinas del canvas
<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 tope = false;
function actualizarPantalla(){
if(tope == false){
limpiarPantalla();
disenharCircunferencia(x,20,10);
x++;
if(x == 600){
tope= true;
}
}else{
limpiarPantalla();
disenharCircunferencia(x,20,10);
x--;
if(x == 0){
tope= false;
}
}
console.log("valor:" + x);
}
// funcion actualizarPantalla() sin parentesis o se ejecuta al comenzar el programa no al ser llamado por setInterval
setInterval(actualizarPantalla,10);
</script>