1
resposta

Vai e volta com duas funções

Resolvi o problema utilizando duas funções.

Gostaria de saber se foi ruim minha solução e o que eu posso melhorar ?

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

<script>

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

    pincel.fillStyle = 'Lightgrey';
    pincel.fillRect (0,0,600,400);

    function desenhaCirculo(x, y, raio){


        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI );
        pincel.fill();
    }

    function limpaTela(){

        pincel.clearRect(0,0,600,400);
    }

    var x = 0;
    var sentido = true;


    function atualizaTelaDireita(){
        if (x < 600 && sentido == true){

        limpaTela();
        desenhaCirculo(x,20,10);
        x++;
        if (x == 600){

            sentido = false;    
        }
    }
    } 

    function atualizaTelaEsquerda(){
        if (x > 0 && sentido == false ){
        limpaTela();
        desenhaCirculo(x,20,10);
        x--;
        if ( x == 0 ){

            sentido = true;    
        }
        }
    }

    setInterval(atualizaTelaDireita, 10);

    setInterval(atualizaTelaEsquerda, 10);

</script>
1 resposta

Olá, Julian! Espero que esteja tudo bem

Desculpe a demora em dar um retorno!

Sua estrutura está muito bacana.

O único ponto é somente de organização, por exemplo, não colocaria as variáveis x e sentido isoladas no meio do código. Assim, comecaríamos a estrutura com as variáveis e posteriormente as funções.

Pensando em uma aplicação com mais de mil linhas seria difícil encontrar variáveis no meio do código para qualquer refatoração.

No mais, está perfeito, Julian!

Um abraço e bons estudos!!!