Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por qual motivo a bolinha volta?

Ola pessoal, vi que tem uma pergunta parecida, mas não consegui compreender.

<meta charset="UTF-8">

<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 = 20;

    var sentido = 1

    function atualizaTela() {

        limpaTela();

        if (x > 600) {

            sentido = -1

        } else if (x < 0) {

            sentido = 1;
        }

        desenhaCirculo(x,20,10);
        x = x + sentido;


    }

    setInterval(atualizaTela, 10);


</script>insira seu código aqui

Quando x > 600 , o sentido vira -1, mas porque quando ele se torna 599, o sentido continua -1 ? já que o if diz pra só colocar -1 quando x > 600, desculpe pela pergunta parecida, é que realmente não consegui entender.

Obrigado.

2 respostas
solução!

Boa tarde, Marcelo! Tudo bem, cara? =)

Quando x > 600, ele muda para -1, conforme você disse... Porém, temos o bloco do else if, que só altera o sentido para 1, quando o x < 0... Sacou? Rs.

Espero ter ajudado, mas qualquer dúvida não deixe de postar por aqui para que possamos ajudá-lo!

Abraço e bons estudos,

Fábio

Agora eu entendi :) ele só muda o valor quando else if entra em ação, e o valor fica contido nesse loop! Obrigado Fábio!