Olá, Resolvi brincar e coloquei uma variável para cada botão do mouse. Os botões Shift e Alt funcionaram bem, porém não consigo fazer com que o botão "guarde" uma cor única e ao escolher a cor, ela acaba valendo para os dois.
<canvas width="600" height="400"></canvas>
<br>
Escolha uma cor! <input type="color">
<script>
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
var corDireito = document.querySelector('input');
var corEsquerdo = document.querySelector('input');
pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
var raioDireito = 10; //se a variável estiver dentro da função, assim que soltar o shift, ela retorna à 10, porém se ela estiver fora da função ela incrementa.
var incremento = 5;
var raioEsquerdo= 10
function botaoEsquerdo(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
if (evento.shiftKey && evento.altKey){
alert ('Só uma tecla por vez, por favor!');
} else if (evento.shiftKey && raioEsquerdo + incremento <= 40){
raioEsquerdo = raioEsquerdo + incremento;
} else if (evento.altKey && raioEsquerdo - incremento >= 10){
raioEsquerdo = raioEsquerdo - incremento;
}
pincel.fillStyle = corEsquerdo.value;
pincel.beginPath();
pincel.arc(x, y, raioEsquerdo, 0, 2 * 3.14);
pincel.fill();
console.log(x + ',' + y);
}
function botaoDireito(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
if (evento.shiftKey && evento.altKey){
alert ('Só uma tecla por vez, por favor!');
} else if (evento.shiftKey && raioDireito + incremento <= 40){
raioDireito = raioDireito + incremento;
} else if (evento.altKey && raioDireito - incremento >= 10){
raioDireito = raioDireito - incremento;
}
pincel.fillStyle = corDireito.value;
pincel.beginPath();
pincel.arc(x, y, raioDireito, 0, 2 * 3.14);
pincel.fill();
console.log(x + ',' + y);
return false
}
tela.onclick = botaoEsquerdo;
tela.oncontextmenu = botaoDireito;
</script>
Como posso fazer para que cada botão "se lembre" da sua própria cor? E gostaria de saber como posso otimizar meu código, para que não fique tão grande. Obrigada