1
resposta

Resolução usando Boolean

Bom para o pessoal que tá começando que nem eu poder ver que existem inúmeras soluções. E se repararem, eu mantive o fundo cinza claro fazendo uma pequena alteração na função limpaTela().

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

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");
    pincel.fillStyle = "lightgray";
    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.fillStyle = "lightgray";
        pincel.fillRect(0, 0, 600, 400);
    }

    var x = 0;
    var sentidoPos = true;

    function atualizaTela() {

        if(x > 600) {
            sentidoPos = false;
        }

        if(x < 0) {
            sentidoPos = true;
        }

        limpaTela();
        desenhaCirculo(x, 20, 10);
        if(sentidoPos) {
            x++;
        } else {
            x--;
        }

    }

    setInterval(atualizaTela, 2);

</script>
1 resposta

Muito bem, Igor! Obrigado por compartilhar a sua solução com a gente! Assim todos crescemos juntos! Continue assim!

E realmente, muitas vezes os problemas que enfrentamos podem ter mais de uma solução viável como vc muitíssimo bem observou!

Grande abraço e bons estudos, meu aluno!