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

Diagonal

Boa tarde,

ao tentar incrementar o codigo com a diagonal, me deparei com um problema. O codigo so joga a diagonal uma unica vez, depois escolhe, por alguma regra que desconheço, uma das teclas e continua somente nela. Ex.: aperta esquerda + baixo, a bolinha vai para a diagonal inferior esquerda uma unica vez e depois continua o movimento somente para baixo, ou somente para a esquerda, mesmo mantendo ambas as teclas esquerda e baixo pressionadas. Eis aqui a minha implementação:

    function apertaTeclado(evento) {
        if(evento.keyCode == esquerda){
            x = x - atualiza;
        }
        if(evento.keyCode == cima) {
            y = y - atualiza;
        }
        if(evento.keyCode == direita) {
            x = x + atualiza;
        }
        if(evento.keyCode == baixo) {
            y = y + atualiza;
        }
        if(evento.keyCode == esquerda && evento.keyCode == cima) {
            x = x - atualiza;
            y = y - atualiza;
        }
        if(evento.keyCode == direita && evento.keyCode == baixo) {
            x = x + atualiza;
            y = y + atualiza;
        }
        if(evento.keyCode == esquerda && evento.keyCode == baixo) {
            x = x - atualiza;
            y = y + atualiza;
        }
        if(evento.keyCode == direita && evento.keyCode == cima) {
            x = x + atualiza;
            y = y - atualiza;
        }
1 resposta
solução!

Oi Luan tudo bem?

O que acontece é que ao ler a tecla do evento ele sempre lê uma e depois executa a segunda. Não lê as duas ao mesmo tempo.

Para ler as duas "ao mesmo tempo" tem que trabalhar com keyup e keydown. Dá uma olhadinha nesse exemplo https://www.w3schools.com/graphics/tryit.asp?filename=trygame_controllers_keys_multiple

Espero ter ajudado!!!