AQUI TÁ TEU CODIGO CORRIGIDO
<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 indiceCorAtual = 0;
var cores = ['blue', 'red', 'green']
function pinta(evento){
var x= evento.pageX -tela.offsetLeft;
var y= evento.pageY -tela.offsetTop;
pincel.fillStyle = cores[indiceCorAtual];
pincel.beginPath();
pincel.arc(x , y , 10 , 0 , 2*Math.PI) //No lugar do ram() coloquei o tamanho do círculo, estava dando erro
pincel.fill();
console.log(x+ ',' +y);
}
tela.onclick = pinta
/*
function mudaCor() {
indiceCorAtual++
if(indiceCorAtual >= cores.length) {
indiceCorAtual = 0;
}
return false;
}
*/
//tentei usar aqui um jeito diferente de mudar a cor,mas também não deu certo (isso tava dando erro tem que comentar com "//")
function mudaCor() {
if (indiceCorAtual == 2) { //o incremento tem que ser no indiceCorAtual
indiceCorAtual = 0;
} else {
indiceCorAtual++
}
return false;
}
tela.oncontextmenu = mudaCor;
</script>
Pense o seguinte, o indiceCorAtual é como um armário organizado e separado por gavetas... ele vai colocar as cores na ordem que você anunciou no array:
gaveta (posição) 0 - blue
gaveta (posição) 1 - red
gaveta (posição) 2 - green
na primeira rotação ele vai pegar o item na gaveta 0 e colocar no local, recebe um incremento "++", devolve o da gaveta 0 e vai para a gaveta 1, recebe mais um incremento e vai para a gaveta 2, quando ele vê que não há gaveta 3, ele toma o prenuncio que indiceCorAtual 3 não existe "é falso", retorna para o início... indiceCorAtual = 0...
e pra trocar a cor você tem que usar o BOTÃO DIREITO DO MOUSE - que é o BOTÃO DE MENUs