1
resposta

Solução: Trocando de Cor

Segue abaixo a solução do problema.

<meta charset="utf-8">

<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector("canvas");
    pincel = tela.getContext('2d');

    var cor = ['blue', 'red','green'];
    var indice = 0; // começa com blue

    pincel.fillStyle="grey";
    pincel.fillRect(0, 0, 600, 400);

    function desenhaCirculo(evento) {
        console.log(evento);
        var x = evento.pageX - tela.offsetLeft; // tirando o espaço esquerdo entre a tela e  área do canvas
        var y = evento.pageY - tela.offsetTop;  // tirando o espaço de cima entre a tela e a área do canvas
        pincel.fillStyle = cor[indice];
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2*3.14 );
        pincel.fill();
        console.log(x + ',' + y);


    }

    tela.onclick = desenhaCirculo; // quem chama a função é o navegador quando recebe um click na tela

    function mudaCor() {
        indice++;

        if(indice >= cores.lenght) {
            indice=0; //volta para a primeira cor, azul
        }

        return false; // para não exibir o menu padão do canvas
    }

    tela.oncontextmenu = mudaCor;

</script>
1 resposta

Olá Aluno.

Fiz o teste do código tentando achar um solução para a troca de cores e observei que ele gera a troca de cores apenas uma vez (passa pela azul, vermelha e verde - onde trava). Estou pensando em uma forma de gerar a troca contínua das cores. Caso consiga, ficarei feliz em saber como fez.