1
resposta

pq meu código não funciona?

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

<script>

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

    var x = 20;
    var y = 20;

    // códigos do teclado

    var esquerda = 37;
    var cima = 38;
    var direita = 39;
    var baixo = 40;

     // taxa de incremento
     var taxa = 10;


    function desenhaCirculo(x, y, raio) {

        pincel.fillStyle = "blue";
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }

    function limpaTela() {

        pincel.clearRect(0, 0, 600, 400);
    }

    function atualizaTela() {

        limpaTela();
        desenhaCirculo(x, y, 10);
    }

    setInterval(atualizaTela, 20);

    function leDoTeclado(evento){

        if(evento.keycode == cima  &&  y > 0){
            y=y - taxa;
        }  else if(evento.keycode == baixo  &&  y < 400){
            y=y + taxa;

        } else if(evento.keycode == esquerda  &&  x > 0){
            x=x - taxa;
        } else if(evento.keycode == direita  &&  x < 600){
            x=x + taxa;
        }

    }

     document.onkeydown = leDoTeclado;

</script>
1 resposta

Olá, Rafael! Tudo bem?

O erro está na palavra keycode, o correto é keyCode, com C maiúsculo. Veja:

//Antes:

if(evento.keycode == cima  &&  y > 0){
            y=y - taxa;
        }  else if(evento.keycode == baixo  &&  y < 400){
            y=y + taxa;

        } else if(evento.keycode == esquerda  &&  x > 0){
            x=x - taxa;
        } else if(evento.keycode == direita  &&  x < 600){
            x=x + taxa;
        }


//Depois:

        if(evento.keyCode == cima  &&  y > 0){
            y=y - taxa;
        }  else if(evento.keyCode == baixo  &&  y < 400){
            y=y + taxa;

        } else if(evento.keyCode == esquerda  &&  x > 0){
            x=x - taxa;
        } else if(evento.keyCode == direita  &&  x < 600){
            x=x + taxa;
        }

Espero ter ajudado! Qualquer dúvida, estamos à disposição.

Ótima semana e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!