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

Como fazer um jogo em que dois jogadores podem movimentar seus personagens pelo teclado

Estou com dúvida de como posso fazer um dois jogadores movimentarem seus personagens pela evento de "onkeydown", pois quando um tentar movimentar seu personagem o outro não consegue movimentar o outro personagem.

// variáveis ator1
let xAtor1 = 40;
let yAtor1 = 550;

// variáveis ator2
let xAtor2 = 730;
let yAtor2 = 20;

let imgDoAtor1;
let imgDoAtor2;

// captura tecla do usuário
document.onkeydown = movimentaAtor;

function mostraAtor1() {

    imgDoAtor1 = new Image();
    imgDoAtor1.src = "./imagens/ator1.png";
    imgDoAtor1.onload = function () {
        pincel.drawImage(imgDoAtor1, xAtor1, yAtor1, 40, 40);
    }
}

function mostraAtor2() {

    imgDoAtor2 = new Image();
    imgDoAtor2.src = "./imagens/ator2.png";
    imgDoAtor2.onload = function () {
        pincel.drawImage(imgDoAtor2, xAtor2, yAtor2, 40, 40);
    }
}

function movimentaAtor(evento) {

    let keycode = evento.keyCode;

    // Primeiro jogador
    if (keycode == 37) {
        if (xAtor1 - 5 > 0) xAtor1 -= 5;
    }
    if (keycode == 38) {
        if (yAtor1 - 5 > 0) yAtor1 -= 5;
    }
    if (keycode == 39) {
        if (xAtor1 + 5 < 800 - 30) xAtor1 += 5;
    }
    if (keycode == 40) {
        if (yAtor1 + 5 < 560) yAtor1 += 5;
    }

    // Segundo jogador
    if (keycode == 65) {
        if (xAtor2 - 5 > 0) xAtor2 -= 5;
    }
    if (keycode == 87) {
        if (yAtor2 - 5 > 0) yAtor2 -= 5;
    }
    if (keycode == 68) {
        if (xAtor2 + 5 < 800 - 30) xAtor2 += 5;
    }
    if (keycode == 83) {
        if (yAtor2 + 5 < 560) yAtor2 += 5;
    }
}

1 resposta
solução!

Fala ai Bernardo, tudo bem? Acho que a ideia seria mais ou menos o que tu fez, definir diferentes tecladas para movimentar diferentes direções de diferentes jogadores.

Qual o comportamento atual do seu jogo? Você está fazendo ele utilizando qual biblioteca ou framework?

Fico no aguardo.