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

¡Ya que va, que vuelva! - versión diagonal

Hola, les comparto mi código, el circulo en lugar de ir en horizontal va en diagonal, también tiene un evento, para hacer que vaya más rápido y no haya que esperar a que llegue, y agregué un cambio color.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Anima</title>
</head>
<body>
    <canvas class="lienzo" width="600" height="400"></canvas>
    <script>
        let canvas = document.querySelector(".lienzo");
        let ctx = canvas.getContext("2d");
        let i = 0;
        let status = false;
        let colors = ["#EC5800","#2E8B57"];
        let cSelect = 0;
        canvas.addEventListener("click", ciclo);    //esto hace que el circulo vaya un poco más rápido.

        ctx.fillStyle = "lightgrey";
        ctx.fillRect(0,0,600,400);

        function drawCircle(x,y,radio){
            ctx.fillStyle = colors[cSelect];
            ctx.beginPath();
            ctx.arc(x,y,radio,0,2*3.14);    //posición en x, en y, el radio del circulo, el ángulo, y dos veces pi.
            ctx.fill();
        }
        function clear(){
                ctx.clearRect(0,0,600,400);
                ctx.fillStyle = "lightgrey";
                ctx.fillRect(0,0,600,400);
        }
        function ciclo(){
            clear();
            console.log("Se ha creado un circulo");
            drawCircle(i*10,i*10,10);        //modifico las dos coodernadas porque quiero que vaya en diagonal.
                                            //también las multiplico por 10 para ver mejor el movimiento.
            if(status == false){
                cSelect = 0;
                i++;
                if(i >= 40){
                    status = true;
                }
            }
            if(status == true){
                cSelect = 1;
                i--;
                if(i <= 1){
                    status = false;
                }
            }            
        }
        setInterval(ciclo, 1000);
        </script>
</body>
</html>

Compartan sus códigos.

1 respuesta

muy bueno