3
respostas

Não funciona

Não entendi porque o meu código não funciona ? Usei como base o meu exercício anterior, e criei mais uma variável. Help ! Segue código

<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, cor) {

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }

    function limpaTela() {

        pincel.clearRect(0, 0, 600, 400);
    }

    var raio = 20;

    var pulso = 20;

    function atualizaTela() {

        limpaTela();
        if (raio <= 20) {

            pulso++;

        }else if(raio >= 30){

            pulso = pulso - 1;
        }

    }

    setInterval(atualizaTela, 20);

</script>
3 respostas

Não cheguei a executar o seu código, mas parece que faltou você chamar o método desenhaCirculo(x, y, raio, cor) ao fim do método atualizaTela.

Faz sentido?

limpaTela(); ►if (raio == 20){ pulso = 1; }else if(raio == 30){ pulso = -1; }

►raio = raio + pulso;

►desenhaCirculo(50,50,raio,'blue');

A ideia é bem por esse caminho É a mesma ideia que vc usou de mudar o fator de incremento, basta salvar o fator de Pulso apenas na variavel, e executa-la fora fora do bloco IF. E como o nosso amigo Marcos Salles disse, faltou chamar de volta a Função desenhaCirculo que foi apagada no LimpaTela.

Raul, você pode usar código Markdown aqui na resposta (e tem até um botão de <> inserir código no canto superior esquerdo da caixa de edição) pra marcar comoo negrito ou itálico.

Conteúdo HTML normal vai ser ignorado =)