1
resposta

Criando alerta para mudança de cores

Fiquei um tempo sem conseguir praticar e tive que dar uma pausa, resolvi tentar retomar no exercício onde estava parado. Quanto a parte do uso do array para mudar a cor do circulo, tive um pouco de dificuldade mas consegui. Me veio a ideia de que para reforçar o aprendizado, eu poderia criar um alerta cada vez que as cores fossem trocadas, escrevi o código conforme abaixo, porém não funcionou do jeito que eu esperava. Alguém poderia me ajudar ?

<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 nomeDasCores = ['azul', 'vermelho', 'verde']
    var indiceCorAtual = 0; //Começa em azul
    var indiceNomeDasCores = 0; //Começa em azul

    function marcaCirculo(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 * 3.14);
        pincel.fill();
        console.log("x = " + x + " , " + "y = " + y);

    }

    tela.onclick = marcaCirculo;

    function trocaCor() {

        indiceCorAtual++;

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


        return false;
    }

function mostraNomeDaCor() {

        indiceNomeDasCores++;

        if (indiceNomeDasCores >= nomeDasCores.length) {
            indiceNomeDasCores = 0;
            alert("A cor atual é" + nomeDasCores)
        }


        return false;
    }

    tela.oncontextmenu = mostraNomeDaCor 
    tela.oncontextmenu = trocaCor;


</script>
1 resposta

Boa noite, Lucas, o código da função trocaCor ficaria da seguinte forma:

function trocaCor() {
        indiceCorAtual++;

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

        console.log('Nova cor: ' + cores[indiceCorAtual]);
    }

Além disso, você pode remover o return false das funções, pois ele não gera nenhuma mudança de comportamento na forma que seu código está atualmente. Se quiser, pode me contar o que você pensou ao incluí-lo e discutimos sua solução / linha de raciocínio.