Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Solución Ida y Vuelta

Sencillamente lo que hice fue activar un condicional apoyándome en una variable llamada reversa, que me indicara el momento en el que llega a un extremo y al otro.

<canvas width="600" height="400">

</canvas>

<script>
    var pantalla = document.querySelector("canvas");//Va a hacer una conexión entre la etiqueta canvas con acciones que quiero hacer en JS
    var pincel = pantalla.getContext("2d");//Dos dimensiones

    pincel.fillStyle="grey";//Propiedad
    pincel.fillRect(0,0,600,400);//Función Rellenar Rectángulo -> Parámetros como puntos del cuadrado

    function disenharCircunferencia(x,y,radio){
        pincel.fillStyle = "blue";
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }
    var x = 0;
    function limpiarPantalla(){
        pincel.clearRect(0,0,600,400);
        pincel.fillStyle="grey";//Propiedad
        pincel.fillRect(0,0,600,400);//Función Rellenar Rectángulo -> Parámetros como puntos del cuadrado
    }
    var reversa = false;
    function actualizarPantalla(){
        limpiarPantalla();
        disenharCircunferencia(x,20,10);
        if(x == 0){
            reversa = false;
        }
        else if(x == 600){
            reversa = true;
        }
        if(reversa){
            x--;
        }else{
            x++;
        }
    }
    setInterval(actualizarPantalla,5);
</script>
2 respuestas

Buenas Sebastian Diaz Vivas, esta me funcionó y es mas corta, compara por favor y saca conclusiones

<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();

       }

            var x = 0
            var sentido = 1;

        function actualizarPantalla(){

                pincel.clearRect(0,0,600,400);
                if(x > 600){
                    sentido = -1;

                }else if(x < 0){
                        sentido = 1;
                }

                disenharCircunferencia(x,20,10);
                x = x + sentido;
        }        

        setInterval(actualizarPantalla,8);

</script>

Buena solución Sebastián, se me hizo muy didáctica.