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

meu código não funciona

N aula 4 exerc

<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 = cor;
    pincel.beginPath();
    pincel.arc(x, y, raio, 0, 2 * Math.PI);
    pincel.fill();


    }

    function limpaTela() {
      pincel.clearRect(0, 0 ,600, 400);
    }  
    var raio = 19;
    var fatorCrescimento = 0;

    function atualizaTela() {

        limpaTela();
        if(x > 30) {
          fatorCresicmento = -1;
         }else if (x < 20) {
           fatorCrescimento = 1;
         }  
         raio =raio + fatorCrescimento;
           desenhaCirculo(300, 200, raio, 'blue');


    }

    setInterval(atualizaTela, 20);    




</script>

icio 7 o código não funciona.

6 respostas

Aline olhando seu código não achei erro de programação, só se passou despercebido, mais achei um detalhe aqui.

pincel.fillStyle = cor;

você está passando uma variavel cor para esse objeto, mais no codigo não tem nada declarado como cor, será que nao pode ser ai o erro?

Olá Aline, só acrescentando ao que o Michel disse.

Quando você chama a função desenhaCirculo, você passa uma cor pra ela por parâmetro:

desenhaCirculo(300, 200, raio, 'blue');

Mas está faltando você receber essa cor na declaração da função, pois você só está recebendo x, y e raio. Então você deve receber a cor por parâmetro na função desenhaCirculo:

function desenhaCirculo(x, y, raio, cor) {

Por último, dentro da função atualizaTela(), você está testando uma variável x que não existe:

if (x > 30) {
    fatorCresicmento = -1;
} else if (x < 20) {
    fatorCrescimento = 1;
}  

De acordo com o exercício, você deve testar o raio no lugar de x:

if (raio > 30) {
    fatorCresicmento = -1;
} else if (raio < 20) {
    fatorCrescimento = 1;
}  

Obrigada! Mas a bolinha ainda não pulsou na tela como comanda o exercício e sim expandiu até preencher toda a tela.

solução!

Olá Aline! Passou despercebido, mas a variável fatorCrescimento está escrita errada, também dentro do if:

if (raio > 30) {
    fatorCresicmento = -1;
} else if (raio < 20) {
    fatorCrescimento = 1;
}

Se o raio for maior que 30, está escrito fatorCresicmento, ao invés de fatorCrescimento.

Ah sim, agora deu certo. Obrigada!

De nada Aline!

Como a sua dúvida foi solucionada, eu vou fechar esse tópico, tudo bem?

Para qualquer outra dúvida, não hesite em recorrer ao nosso fórum!

Bons estudos!