Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ficou um pouco diferente do código do professor, alguém poderia opinar sobre?

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

    <script>

        function desenhaQuadrado(x, y, tamanho, cor) {

            pincel.fillStyle = cor;
            pincel.fillRect(x, y, tamanho, tamanho)
            pincel.fill();
            pincel.fillStroke = 'black';
            pincel.strokeRect(x, y, tamanho, tamanho);

        }

        function desenhaCirculo(x, y, raio, cor) {

            pincel.fillStyle = corAtual[i];
            pincel.beginPath();
            pincel.arc(x, y, raio, 0, 2 * 3.14);
            pincel.fill();

        }

        function desenhaPaletaDeCores() {


            desenhaQuadrado(xVermelho, yQuadrados, tamanhoQuadrados, 'red');
            desenhaQuadrado(xVerde, yQuadrados, tamanhoQuadrados, 'green');
            desenhaQuadrado(xAzul, yQuadrados, tamanhoQuadrados, 'blue');

        }

        function lidaComMovimentoDoMouse(evento) {

            var x = evento.pageX - tela.offsetLeft;
            var y = evento.pageY - tela.offsetTop;


            if(x <= 160 && y <= 60){
                desabilitaDesenhar();
            }else if(desenha) {

                    desenhaCirculo(x, y, 10, corAtual[i]);


                    }


        }

        function habilitaDesenhar() {

            desenha = true;
        }

        function desabilitaDesenhar() {

            desenha = false;
        }

        function troca(evento){

            var x = evento.pageX - tela.offsetLeft; 
            var y = evento.pageY - tela.offsetTop;

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

            if((x > xVermelho && x < 50) && (y > yQuadrados && y < 50)){

                i =  0;
                alert('trocou')

            }else if ((x > xVerde && x < 100) && (y > yQuadrados && y < 50)){

                i =  1;
                alert('trocou')

            }else if ((x > xAzul && x < 150) && (y > yQuadrados && y < 50)){
                i =  2;

                alert('trocou')
            }

        }


        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');
        pincel.fillStyle = 'lightgray';
        pincel.fillRect(0, 0, 600, 400);

        var desenha = false;
        var corAtual = ['red','green','blue'];
        var xVermelho = 0;
        var xVerde  = 50;
        var xAzul = 100;
        var yQuadrados = 0;
        var tamanhoQuadrados = 50;
        var i;

        desenhaPaletaDeCores(); // mostra os quadrados de seleção de cores

        tela.onclick = troca;

        tela.onmousemove = lidaComMovimentoDoMouse;

        tela.onmousedown = habilitaDesenhar;

        tela.onmouseup = desabilitaDesenhar;

    </script>
1 resposta
solução!

Bruno,

Muito bem. Está funcionando.

Recomendo que apague ou coloque como comentário o console.log criado para testar se clicou nos quadrados coloridos.

apague alert('trocou') ou coloque //alert('trocou')

Bons estudos!