Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bolinha com um comportamento estranho

Quando pressiono a seta para cima, a bolinha vai para baixo e só a partir do segundo clique começa a subir. O mesmo comportamento acontece quando pressiono a seta para baixo. O que pode ser?

Vou deixar o código e um vídeo abaixo.

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

pincel.fillStyle = 'lightgray';
pincel.fillRect(0, 0, 600, 400);

//Definindo os eixos x e y
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/Decremento dos eixos
var taxa = 10;

//Definindo a Função Desenha Círculo
function desenhaCirculo(x, y, raio) {

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

//Definindo a Função que Limpa a Tela
function limpaTela() {

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

//Definindo a função que Atualiza a Tela
function atualizaTela() {

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

//Definindo o ritmo da animação
setInterval(atualizaTela, 20);


function leDoTeclado(evento) {

    //Acessando as teclas pressionadas
    if(evento.keyCode == esquerda) {

        x = x - taxa;
    }

    else if(evento.keyCode == direita) {

        x = x + taxa;
    }

    else if(evento.keyCode == cima) {

        y = y - taxa;
    }

    else if(evento.keyCode == baixo) {

        y = y + taxa;
    }
}

document.onkeydown = leDoTeclado;

Vídeo: https://drive.google.com/file/d/0B63yeVAs4D_JaTI3R0lFY1RXQkU/view?usp=sharing

1 resposta
solução!

Bom analisei o teu código e esta bastante semelhante ao meu com a diferença de alguns nomes de funções e do valor da taxa que no meu caso esta 5, peguei o teu código e rodei na minha maquina e ele rodou normal, não apresentou esse comportamento visto no teu.