2
respostas

Solução: aumentando e diminuindo a bola

Boa noite pessoal!

Alguém poderia ajudar-me por favor, mesmo colocando o evento.altkey, a bola não está diminuindo.

<meta charset="utf-8">

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

<script>

    var tela = document.querySelector("canvas");
    pincel = tela.getContext('2d');

    var cor = ['blue', 'red','green'];
    var indice = 0; // começa com blue

    pincel.fillStyle="grey";
    pincel.fillRect(0, 0, 600, 400);

    var raio = 10; //variável que guarda o valor do raio
    function desenhaCirculo(evento) {
        console.log(evento);
        var x = evento.pageX - tela.offsetLeft; // tirando o espaço esquerdo entre a tela e  área do canvas
        var y = evento.pageY - tela.offsetTop;  // tirando o espaço de cima entre a tela e a área do canvas

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

        if(evento.shiftKey && evento.altKey) {
            alert('Só aperte uma tecla por vez, por favor!');
        }else if( evento.shiftKey && raio + 10 <= 40) {
            raio = raio + 10;
        } else if( evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;
        }



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


    }

    tela.onclick = desenhaCirculo; // quem chama a função é o navegador quando recebe um click na tela


    function mudaCor() {
        indice++;

        if(indice >= cor.lenght) {
            indice=0; //volta para a primeira cor, azul
        }

        return false; // para não exibir o menu padão do canvas
    }

    tela.oncontextmenu = mudaCor;

</script>
2 respostas

Bom dia, encontrei os erros no seu código, que são 2:

if(evento.shiftKey && evento.**altkey**) {
            alert('Só aperte uma tecla por vez, por favor!');
        } else if( evento.shiftKey && raio + 10 <= 40) {
            raio = raio + 10;
        } else if( evento.**altkey** && raio - 5 **<=** 10) {
            raio = raio - 5;
        }
    1°: Altere para "altKey" com o K maiúsculo que funcionará perfeitamente.
    2°: no evento altKey, altere o "menor ou igual" para "maior ou igual"
    invés de: <=
    passa a ser: >=

Valeu Gabriel, obrigado pela ajuda. :D