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

Tive que colocar um else

Boa noite!

Fiz o exercício, mas não estava conseguindo fazer a bolinha voltar ao raio original quando soltava a tecla SHIFT. Depois testei com o código do professor, e também não está voltando, mesmo sem o SHIFT apertado a bolinha continua saindo com o último valor somado. Não entendi por que. Mas resolução foi bem simples, só adicionei um else zerando o raio dentro da função. Caso alguém tenha tido o mesmo problema, segue o código:

    function desenhaCirculo(evento) {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;


        if(evento.shiftKey) {

        raio = raio + 10;

        }else {

            raio = 10;
        }

        pincel.fillStyle = cores[cliques];
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14);
        pincel.fill();
        console.log(x + ',' + y);
    }

2 respostas
solução!

Interessante cara. Ficou bem simples. Do exemplo anterior eu joguei a variável "raio" para fora da função e trabalhei com while no click.

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

<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
     var raio = 10;

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

    function desenhaCirculo(evento) {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;


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

        while (evento.shiftKey) {

            raio = raio + 20; // raio agora passa a valer 30!
            break;
        }

        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14);
        pincel.fill();

    }

    tela.onclick = desenhaCirculo;

</script>

Que massa, gostei! Achei legal usar o break pro raio não seguir aumentando, valeu por compartilhar