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

A bolinha vai até o final porém não volta

Boa noite, Já olhei alguns tópicos também com if e else if só que ainda não consegui entender, to tentando fazer o meu código rodar com o if e else if também mais quando salvo o bloco de código abaixo e recarrego a página, minha bolinha vai até o final do canvas e não volta, eu sei que poderia olhar na opnião do professor, mais queria mesmo entender de falto como faço pra conseguir fazer a bolinha ir e vim e ai sim depois, analisar os códigos. Alguem pode me ajudar por favor, abaixo segue a minha function

var x = 20;
 var sentido = 1;

function atualizaTela(){

    limpaTela();
    desenhaCirculo(x,20,10);

    if (x < 600){

        x = x + sentido;
    } else if (x > 0){

        x = x - sentido;
    }

}

setInterval(atualizaTela,2);
1 resposta
solução!

Opa Igor, beleza?

Então, o problema está na condição dos If, X começa valendo 20, então toda vez que sua função é chamada, cai na primeira condição do if, e vai se somando +1 ao valor do X, que faz com que a bolinha chegue até o fim do canva. Quando ela chega no final X está valendo 600, então na próxima chamada da sua função vai cair pela primeira vez na segunda condição do if, então X será - 1, ou seja, ele começa a valer 599, o problema é que na próxima chamada da função, você cai novamente na primeira condição do if, então X volta a valer 600 (x + 1), então fica neste 'loop infinito' entre os dois if, onde X fica valendo 600 e 599 de forma intercalada.

Meu código ficou assim:

    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,2);