Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pensei em outra solução (que não funciona) e gostaria de entender porque não funciona

Olá! Inicialmente, ao tentar resolver o exercício, pensei na seguinte solução. Notei que não funciona e o professor criou uma variável (que eu acredito ser auxiliar) chamada sentido. Gostaria de entender porque minha solução não funciona, penso eu que a lógica está correta.

<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.clearRect(0,0,600,400);
    }

    var x = 20;

    function atualizaTela(){
        limpaTela();
        x = x + 1;

        if (x > 600){
            x = x -1;

        }else if(x < 0) {
            x = x + 1;

        }

        desenhaCirculo(x, 20, 10);


    }

    setInterval(atualizaTela,5);


</script>
1 resposta
solução!

Olá, Maria Eugênia! Tudo bom?

A estrutura da lógica está correta sim, mas a falta da variavel sentido vai fazer toda a diferença.

A variável x é quem fará a bolinha caminhar

var x = 20;

Agora é onde eu crio a variável sentido para incrementar a variável x de 1 em 1.

var sentido = 1 

Quando x for maior que 600 ele deve subtrair 1 (-1) da variável x

        if(x > 600){
           sentido = -1;
        }else if (x < 20){
            sentido = 1;
        }

Para que esses ifs sejam incrementados devemos fazer essa soma ou subtração e guardar dentro de uma variável

x = x + sentido;

Ele vai pegar essa variável sentido e, conforme o resultado dos ifs, vai dizer se o sentido é para somar ou subtrair.

Esse é o motivo de não rodar seu código!

A estrutura da lógica não está errada, mas faltou o incremento para ela rode perfeitamente.

Espero ter ajudado, Maria!

Bons estudos e continue assim!