1
resposta

Solução: Era uma vez uma bola que quase explodiu

Segue solução do problema abaixo.

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

    var raio = 10; //variável que guarda o valor do raio
    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

        console.log(x + ',' + y);


        if(evento.shiftKey) {
            raio = raio + 10; //raio agora passa a valer 30!
        } 

        pincel.fillStyle = cor[indice];
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2*3.14 );
        pincel.fill();


    }

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


    function mudaCor() {
        indice++;

        if(indice >= cor.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á! Tudo bem por aí?

Mandou bem, sua solução está correta!

Caso tenha ficado com alguma dúvida não deixe de compartilhar com a gente.

Continue praticando.

Bons estudos e até mais!