1
resposta

Quadrado "andante" custom

<canvas width="1920" height="1080"></canvas>

<script>

    var tamanho = 100;
    var largura = 600;
    var altura = 400;
    var velocidade = 10;
    var corBorda = "white";
    var corFundo = "black";
    var corQuadrado = "yellow";

    function desenha(cor, x, y){
        pincel.fillStyle = cor;
        pincel.fillRect(x, y, tamanho, tamanho);
        pincel.strokeStyle = corBorda;
        pincel.strokeRect(x, y, tamanho, tamanho);
    }

    const timer = (tempo) =>  {
        let time = tempo * 10
           return new Promise(res => setTimeout(res, time));
    }

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    //Fundo
    pincel.fillStyle = corFundo;
    pincel.fillRect(0, 0, largura, altura);
    pincel.strokeStyle = corBorda;
    pincel.strokeRect(0, 0, largura, altura);

    //Grade
    for (var y = 0; y < altura; y = y + tamanho){
        for (var x = 0; x < largura; x = x + tamanho){
            desenha(corFundo, x, y);
        }
    }

    //Movimento
    async function anda() {
        for (var y = 0; y < altura; y = y + tamanho){
            for (var x = 0; x < largura; x = x + tamanho){
                desenha(corFundo,x-tamanho,y);
                desenha(corQuadrado,x,y);
                if (x >= (largura-tamanho)){
                    await timer(velocidade);
                    desenha(corFundo,largura-tamanho,y);
                }
                await timer(velocidade);
            }
        }
    }

    anda();    


</script>
1 resposta

Olá, Daniel! Tudo bom contigo?

Antes de tudo, agradeço a paciência em aguardar uma resposta!

Simplesmente adorei o programa que você desenvolveu! Parabéns pela criatividade e dedicação — aliás, gostaria de dizer que achei super bacana o modo pelo qual você utilizou a programação assíncrona com async/await no seu código.

Para que você possa se aprofundar no assunto. Deixo como dica de leitura um artigo elaborado pela Juliana Amoasei, instrutora aqui na Alura, sobre programação assíncrona em Javascript. A discussão também conta com alguns vídeos interessantes sobre o mesmo tema.

Para acessar o artigo, basta clicar no link abaixo:


Se aparecerem dúvidas ao longo dos seus estudos, sinta-se confortável para enviá-las ao fórum. Ficarei contente em te ajudar!

Continue assim e até mais! :)