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

Erro no JavaScript Vanila

Bom dia, boa tarde e boa noite rsrs

Senhores, eu estou com uma dúvida em um código do qual estou tentando desenvolver a partir desse projeto para o JavaScript Vanila. Estou tentando dar movimentos a minha raquete, eu até consigo criar o evento para fazer com que ela suba e deça, mas eu observei que a cada toque na seta (o evento) o movimento fica mais rapido. Observei também que no console que a cada evento ele não faz somente o que o meu if pede (yRacket -= .1; ) neste caso ele diminui várias vezes. Será que alguém consegue me dar um luz? kkk segue o código da função.

const moveMyRacket = () => {
    addEventListener("keydown", (event) => {
        if(event.keyCode === 38){
            yRacket -= .1; 
        }

        if(event.keyCode === 40){
            yRacket += .1;
        }


        console.log(yRacket)
})}
1 resposta
solução!

Depois de algum tempo tentando e depois de conversar no discord consegui resolver

const moveMyRacket = () => {
    const onKeyDown = (event) => {
      if (event.keyCode === 38) {
        yRacket -= 5;
      }

      if (event.keyCode === 40) {
        yRacket += 5;
      }

      console.log(yRacket);
    };

    addEventListener("keydown", onKeyDown);

    return onKeyDown; // retorna a função que foi passada como parâmetro para removeEventListener
}

let onKeyDown = moveMyRacket(); // adiciona o listener de eventos na primeira vez
function draw() {
    mostraBolinha()
    VelocidadeBolinha()
    verificaColisaoBorda()
    racket()
    onKeyDown = moveMyRacket();
    removeEventListener("keydown", onKeyDown);

    requestAnimationFrame(draw);   
}



draw();