1
resposta

Fiz usando os codigos dentro do evento.

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

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

pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
var cor = ['blue', 'red', 'green'];
var indiceCorAtual = 0;

function desenhaCirculo(evento) {

    var x = evento.pageX - tela.offsetLeft;
    var y = evento.pageY - tela.offsetTop;
    pincel.fillStyle = cor[indiceCorAtual];
    ;
    console.log(x + ',' + y);

    if(evento.shiftKey){
        pincel.beginPath();
        pincel.arc(x, y, 10 + 20, 0, 2 * 3.14);
        pincel.fill()
        console.log('Shift esta precionado');
    }else {
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.14);
        pincel.fill()
        console.log('Shift não esta precionado.')
    }


}

tela.onclick = desenhaCirculo;

function mudaCor() {

    indiceCorAtual++;

    if(indiceCorAtual >= cor.length){
        indiceCorAtual = 0;
    }


    return false;
}

tela.oncontextmenu = mudaCor;

</script>
1 resposta

Oi, João, tudo bem?

Parabéns pela iniciativa de obter o mesmo resultado mas por um caminho diferente! Testei e executou direitinho.

Bons estudos!