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

Tentativa de incrementar

Tentei incrementa meu código mudando as cores por influência de uma resposta no fórum, porém, não está mudando as cores. Alguém pode me ajudar?!

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

    var cores = ['red', 'orange', 'yellow', 'black'];
    var indiceCores = 0;

    function desenhaCirculo(x, y, raio) {

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

    function mudaCor() {
        if(raio == 25) {
            indiceCores++
        } else if(raio == 19) {
            indiceCores = 0
        }
    }

    function limpaTela() {

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

    var raio = 19;

    var fatorCrescimento = 0; 

    function atualizaTela() {

        limpaTela();

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

         desenhaCirculo(300, 200, raio);

    }

    setInterval(atualizaTela, 20);


</script>    
1 resposta
solução!

Evanio, o que faltou foi chamar o método mudarCor() no código, em momento algum ele é chamado, por isso implemente ele no atualizaTela():

function atualizaTela() {
        limpaTela();

        mudaCor();

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

         desenhaCirculo(300, 200, raio);
    }

Assim o código até funciona, mas tem alguns problemas ainda, como ficar chamando a função mudaCor() toda hora e que a bolinha nunca vai estar na cor preta, porque a função mudaCor() sempre coloca o indiceCores = 0 quando o tamanho dela é igual a 19. Se ainda precisar de ajuda pra algum desses dois, só comentar novamente.