3
respostas

Galera onde está o erro o meu codigo não funciona so fica com a bolinha azul

<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 cores = ['blue ','red ','green' ]
     var indiceCorAtual = 0;






   function exibeBola(evento){

    var x = evento.pageX - tela.offsetLeft;
    var y = evento.pageY - tela.offsetTop;
       pincel.fillStyle = 'blue'
       pincel.beginPath();
       pincel.arc(x , y , 10 , 0 , 2 * 3.14)
       pincel.fill();
    console.log(x + ',' + y)

    }

     tela.onclick = exibeBola;


    function mudaCor() {

        indiceCorAtual++;
        if(indiceCorAtual >= cores.lenght){
            indiceCorAtual = 0 
        }

      return false;
    }

    tela.oncontextmenu = mudaCor;

</script>
3 respostas

Oi Kelvin, tudo bem? Acho que o problema do seu código é quando você vai desenhar a bola. Você não está usando seu array de cores. Você está sempre desenhando a bola azul. Olha essa linha:

pincel.fillStyle = 'blue'

Ela vai ser sempre ser azul. Você precisa combinar seu índice de cores e o array de cores para trocar a cor toda vez. Pegou a ideia?

Ola Kelvin, tudo bem? para resolver esse pequeno empasse basta você alterar um pedaço do seu código:

Na função exibeBola alterar DE:

pincel.fillStyle = "blue"

PARA:

pincel.fillStyle = cores[indiceCorAtual]

Dessa forma, quando a tela receber o clique com botão direito, além de incrementar o indiceCorAtual, ele irá retornar esse valor para o pincel.fillStyle com o indice do array para atualizar a cor da bola que será exibida.

Espero ter ajudado. Sucesso.

Boa pessoal!!