Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Bolinha que vai e volta (dúvida else if)

Esse eu achei complicado, mas cheguei nessa conclusão diferente da do instrutor. Na solução do instrutor ele usa else if, que eu ainda não entendi bem, alguém pode me explicar melhor?

<meta charset="utf-8">
<canvas width="600" height="400"></canvas>

<script type="text/javascript">

    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;
    var subindo = true;
    function vaiBolinha()
    {
        if(x < 20) {
            subindo = true;
            x = 20;
        }
        if(x > 590) {
            subindo = false;
            x = 590;
        }
        if(x >= 20 && x <= 590) {
            limpaTela();
                desenhaCirculo(x, 20, 10);
                if(subindo) {
                    x++;
                } else {
                    x--;
                }
        }

    }

    setInterval(vaiBolinha,10);

    </script>
1 resposta
solução!

E vem simples você usa o else if para seu código ficar mais simples e legível diminuindo a quantidade de chaves.

function vaiBolinha() { if(x < 20) { subindo = true; x = 20; }else if(x > 590) { subindo = false; x = 590; }else if(x >= 20 && x <= 590) { limpaTela(); desenhaCirculo(x, 20, 10); if(subindo) { x++; } else { x--; } } }

Por favor, não esqueça de marcar solucionado rsrs