Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Moviendo elementos con animaciones.

Estuve detallando en el foro la diversidad o cantidad de soluciones posibles que sirven para solucionar el código, aunque algunas me confunden más que la dada por el instructor, valoro el hecho de que haya creatividad y capacidad para solucionar pero destaco el trabajo de Alura en alivianar los códigos para alcanzar los resultados.


<h1>Moviendo elementos con animaciones</h1>



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


<script>

        var pantalla = document.querySelector('canvas');
        var pincel = pantalla.getContext('2d');

        pincel.fillStyle = 'lightgrey'; //propiedad
        pincel.fillRect(0, 0, 600, 400); //function.


/*Vamos a crear una función para diseñar circunferencias.
Se puede ubicar en diversas coordenadas, y diverso tamaño pero
Lo que queremos es que la circunferencia se mueva.
Vamos a intentarlo hacerlo con un FOR.
Creamor el FOR, la variable x sustituye al 20, porque se define
en el FOR.
disenharcircunferencia(20,20,10)

    for (var x = 20; x < 600; x++){
        disenharcircunferencia(x,20,10);Pero un ciclo for no es suficiente, muy rápido, el ciclo for no es el camino.
para eso el clearRect(0, 0, 600, 400) y le pasamos las mismas coordenadas de nuestro canva

    OJO es importante como se llama a una funcíón, es importante no colocar paréntesis.

     El error de Gabriela
     setInterval(actualizarPantalla(),100);

     Debería haber hecho esto:
      setInterval(actualizarPantalla,100);

     Seguimos con nuestro objetivo para mover la circunferencia.
     Gradicar cada cierto tiempo.
     Para ello usamos setInterval (dimensionar intervalo),
     1000 significa a cada segundo.
     Creamos una función exhibirMensaje para entender lo que setInterval realiza.
Creamos una función actualizarPantalla y adentro limpiamos pantalla y diseñamos circunferencia.
     */

    function disenharcircunferencia(x,y,radio){
        pincel.fillStyle = 'blue'
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill(); //Rellena la circunferencia.
    }

    function limpiarPantalla() {
        pincel.clearRect(0,0,600,400);
    }

 //OJO la variable que creamos deber ser x
 //    var = 0


  //Cuando x > 600 necesitamos invertir su sentido. Por eso recibirá el valor de -1.
 //Y cuando x < 0 la misma lógica. Antes de disenhar circunferecia en la function actualizarPantalla() {


    var x = 0
    var sentido = 1

    function actualizarPantalla() {
        limpiarPantalla();
        if (x > 600) {
            sentido = -1;
        } else if (x < 0) {
            sentido = 1;
        }

        disenharcircunferencia(x,20,10);
        disenharcircunferencia(x,280,120);

        x = x + sentido;
        //x++; después de disenharcircunferencia se requiere incremetar x pero según la variable.

    }

    //Colocamos 10 mls para que pase rápido

    setInterval(actualizarPantalla,5);


    //disenharcircunferencia(300,285,20);


</script>
1 respuesta

Hola Yeimer

Gracias por compartir tu código, está muy bien felicitaciones.

Si tienes alguna pregunta sobre el contenido de los cursos, estaremos aquí para ayudarte.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios