Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

A bolinha nao se move. Gostaria de saber o que fiz de errado, pois parece s=estar tudo igual. Alem disso, quando o console.log(evento.KeyCode) é executado, ele retorna Undefined.

var abicissa = 20; var ordenada = 20;

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


    function atualizaTela()
    {
        limpaTela();
        desenhaBola(abicissa,ordenada,10);

    }
    setInterval(atualizaTela,10)

    function leDoTeclado(evento) 
    {
        console.log(evento.KeyCode)

        if(evento.KeyCode == cima)
        {
            abicissa = abicissa + taxa
        }else if(evento.KeyCode == baixo){
            abicissa = abicissa - taxa;
        }else if(evento.KeyCode == esquerda){
            ordenada = ordenada - taxa;
        }else if(evento.KeyCode == direita){
            ordenada = ordenada + taxa;
        }

    }

    document.onkeydown = leDoTeclado;
3 respostas

Ola Iago, tudo bem? Referente ao problema do Undefined no evento.KeyCode, o mesmo ocorre pois não existe uma propriedade chamada KeyCode e sim keyCode, veja a diferença do k maiusculo para minusculo.

Resolvendo esse problema, você conseguira ver qual o valor que você deve verificar no seus if's e deve resolver o seu problema.

Olá Iago, tudo bem com você?

Você criou as funções desenhaBola()e limpaTela() ?. Eu acredito que sim e apenas esqueceu de colocar junto com a pergunta :)

Mas em relação a sua dúvida: você cometeu um pequeno erro de digitação, o comando correto é evento.keyCode e você digitou evento.KeyCode, e dessa forma o programa não consegue capturar corretamente a entrada do seu teclado, por isso estava dando "undefined"

Outra coisa é que você está confundindo um pouco os conceitos:

  • O eixo X é o eixo das abscissas
  • O eixo Y é o eixo das ordenadas

Isso não está dando problema em seu código, entretanto ele irá andar em direções incorretas, para corrigir:

    function leDoTeclado(evento) 
    {
        console.log(evento.keyCode)

        if(evento.keyCode == cima)
        {
            ordenada = ordenada - taxa
        }else if(evento.keyCode == baixo){
            ordenada = ordenada + taxa;
        }else if(evento.keyCode == esquerda){
            abicissa = abicissa - taxa;
        }else if(evento.keyCode == direita){
            abicissa = abicissa + taxa;
        }

    }

Corrigindo esse pequeno erro não terá mais erros!

Abraços e bons estudos :)

solução!
function leDoTeclado(evento) 
    {
        console.log(evento.keyCode)

        if(evento.keyCode == /*codigo referente a cima*/)
        {
            abicissa = abicissa + taxa
        }else if(evento.keyCode == /*codigo referente a baixo*/){
            abicissa = abicissa - taxa;
        }else if(evento.keyCode == /*codigo referente a esquerda*/){
            ordenada = ordenada - taxa;
        }else if(evento.keyCode == /*codigo referente a direita*/){
            ordenada = ordenada + taxa;
        }

    }