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

Duda en el aula 4 del curso 3. Mover los circulos

Buenas noches! en el ejercicio que debemos realizar un recorrido de derecha a izquierda y viceversa con los circulos de colores, tuve que leer la opinion del instructor para solucionarlo, ya que no podía ( ni puedo) lograr que mi codigo funcione, si alguien me podría ayudar en lo faltante le agradezco.

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

<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext('2d');

    pincel.fillStyle ="yellow";
    pincel.fillRect(0,0,600,400);

    function disenharCircunferencia(x,y, radio){
        pincel.fillStyle = "green";
        pincel.beginPath();
        pincel.arc(x,y,radio, 0, 2*Math.PI);
        pincel.fill();
    }
    function limpiarPantalla(){
        pincel.clearRect(0,0,600,400);
    }

    var x = 0; //Variable necesaria para realizar el recorrido en el eje X.


    function actualizarPantalla(){
        limpiarPantalla();
        disenharCircunferencia(x,20,10);
        x++;
    }

    function actualizarPantallaDos(){
        limpiarPantalla();
        disenharCircunferencia(x,20,10);
        xx--;
    }

    if (x <600){
        setInterval(actualizarPantalla,10);
        x++;
    } else  if (x >=600){
        setInterval(actualizarPantallaDos,10);
        x--;
    }



</script>
3 respuestas

El problema que veo está justo acá

  if (x <600){
        setInterval(actualizarPantalla,10);
        x++;
    } else  if (x >=600){
        setInterval(actualizarPantallaDos,10);
        x--;
    }

Lo que sucede ahí es que cumple el

x < 600

Pasa los 600 y entra

x >= 600

Pero acto seguido entra el

x < 600

Y se mantienen peleando ambas condiciones por ello nunca retrocede.

Buenas tardes Cristian, además de lo que dice Miguel, también existe un typo en la función de actualizar pantalla dos, donde en lugar de ser x-- es xx--. Por otro lado no existe una ejecución clara de las funciones, no logro ver un llamamiento adecuado de las mismas. Un saludo!

Gracias por los comentarios y ayudas, me hiceron ver mejor la solucion propuesta por el instructor y como mejorar mi codigo, ahora a seguir intentando, gracias compañeros!