Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

179
Visualizações
Javascript, ¿cómo hago para que la tecla arriba solo se presione una vez?
onEvent("screenGamemode3", "keydown", function(event) { if (event.key == "Left"|| event.key == "a") { xloc = xloc - 10; } else if (event.key == "Right" || event.key == "d" ) { xloc = xloc + 10; } else if (event.key == "Down" || event.key == "s" ) { yloc = yloc + 20; } else if (event.key == "Up" || event.key == "w") { yloc = yloc - 50; } });

Quiero el else if (event.key == "Up" || event.key == "w") { yloc = yloc - 50; parte solo se puede hacer clic una vez y no se puede hacer clic dos veces

Muchas gracias de antemano

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Podría realizar un seguimiento de la última tecla presionada, pero supongo que probablemente desee usar keyup en lugar de keydown . Este último se dispara continuamente, mientras que keyup solo se dispara una vez. O al menos hasta que el usuario vuelva a pulsar la misma tecla.

about 4 years ago · Juan Pablo Isaza Relatório

0

La forma más sencilla de utilizar una flag variable es configurarla como false de forma predeterminada y cuando se hace clic en KEYUP , configurarla como true . Y verifique también su flag variable en su condición else if . Aquí está el código:

 let isKeyupPressed = false; window.addEventListener('keydown', event => { if (event.key == "ArrowLeft"|| event.key == "a") { // xloc -= 10; } else if (event.key == "ArrowRight" || event.key == "d" ) { // xloc += 10; } else if (event.key == "ArrowDown" || event.key == "s" ) { // yloc += 20; } else if (!isKeyupPressed && (event.key == "ArrowUp" || event.key == "w")) { // yloc -= 50; isKeyupPressed = true; console.log('Arrow Up invoke? ', event.key); // it will log only once } console.log(event.key); })

about 4 years ago · Juan Pablo Isaza Relatório

0

No estoy seguro de entender lo que quieres hacer, pero ¿puede algo como esto resolver tu problema?

 let isFirst = true; onEvent("screenGamemode3", "keydown", function(event) { if (event.key == "Left"|| event.key == "a") { xloc = xloc - 10; } else if (event.key == "Right" || event.key == "d" ) { xloc = xloc + 10; } else if (event.key == "Down" || event.key == "s" ) { yloc = yloc + 20; } else if ((event.key == "Up" || event.key == "w") && isFirst == true) { yloc = yloc - 50; } });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda