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

Pode ser dessa forma?

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

<script>


    var cores = ['blue', 'red', 'green'];

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

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

    var corAtual = 0;

    var raio = 10;

    function desenhaCirculo(evento, cor) {

        var x = evento.pageX - tela.offsetLeft; //leva em consideração apenas o tamanho do canvas e não das partes brancas da tela
        var y = evento.pageY - tela.offsetTop;

        var cor = cores[corAtual];

        if(evento.shiftKey && evento.altKey){
            alert('Aperte apenas uma tecla por vez!');
        }

        if(evento.shiftKey){
            raio = raio + 10;
            if(raio > 40){
                raio = 10;
            }
        }

        if(evento.altKey){
            raio = raio - 5;
            if(raio < 10){
                raio = 10;
            }
        }

        console.log(raio);

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

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

    function mudaCor() {

        corAtual++;

        if(corAtual >= cores.length){
            corAtual = 0;
        }

        alert('Your ink became ' + cores[corAtual] + '.');
        return false; //impede a exibição do menu padrão do canvas
    }

    tela.onclick = desenhaCirculo;
    tela.oncontextmenu = mudaCor;

</script>
2 respostas
solução!

Isadora, boa tarde!

Pode sim, e está muito bom! Não se esqueça que tem várias formas de se resolver um problema com programação. Vou deixar uma sugestão okay? Você tem vários ifs, e se um for verdade ele não precisa verificar os outros sendo assim, tente fazer um elseif

Espero ter ajudado e bons estudos!

Oi, Felipe! Obrigada pela sugestão, modifiquei o código e ele ficou bem mais organizado! :)