1
resposta

Tentei fazer um pouco diferente da atividade, mas não deu certo, por que ?

Objetivo era que quando clicasse com o botão direito, o usuário poderia escolher qual cor ele quer

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

<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    var cores = ["blue", "red", "green"];
    var indicaCor= 0;
    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);


    function desenhaCirculo(evento) {

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



    }


    tela.onclick = desenhaCirculo;

    function mudaCor() {

        var qualCor = parseInt(prompt("Qual é a cor que você quer, digita 0 para azul, 1 para vermelho e 2 para verde"));
             if (qualCor == 0) {


                indicaCor++

                return false

                if (qualCor == 1) {


                    indicaCor + 2
                    return false

                }
                    if (qualCor == 2)


                         indicaCor + 3
                     return false

            }
    }


    tela.oncontextmenu = mudaCor;

</script>
1 resposta

Fala, Dalton! Espero que esteja tudo bem?

Desculpe a demora em dar um retorno

Eu fiz algumas mudanças. Confira abaixo:

Primeiro eu coloquei que a variável indicaCor receba qual valor condiz com a cor dentro do vetor. Por exemplo: se o usuário escolher vermelho, a posição 1 do vetor será inserida, que no caso é a cor escolhida

    function mudaCor() {

        var qualCor = parseInt(prompt("Qual é a cor que você quer, digita 0 para azul, 1 para vermelho e 2 para verde"));

        if (qualCor == 0) {
            indicaCor = 0
            return false

            if (qualCor == 1) {
                indicaCor = 1
                return false

            }
            if (qualCor == 2)
                indicaCor = 2
                return false
            }
    }

Feito isso, organizo os ifs fora do encadeamento para que não haja dependência ou mesmo, seja obrigado a entrar no primeiro if

    function mudaCor() {

        var qualCor = parseInt(prompt("Qual é a cor que você quer, digita 0 para azul, 1 para vermelho e 2 para verde"));

        if (qualCor == 0) {


            indicaCor = 0

            return false
        }

        if (qualCor == 1) {

            indicaCor = 1
            return false

        }

        if (qualCor == 2) {


            indicaCor = 2
            return false

        }

    }

Espero ter ajudado, Dalton!

Qualquer dúvida, pode nos retornar!!!

Um abraço e bons estudos