Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Javascript, how do I make the up key only pressed once
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;
  }
});

I want the else if (event.key == "Up" || event.key == "w") { yloc = yloc - 50;part only clickable once and not be able to get clicked twice

Thank you so much in advance

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

You could keep track of the last pressed key, but I'm guessing you probably want to use keyup instead of keydown. The latter is fired continuously while keyup is only fired once. Or at least until the user presses the same key again.

about 4 years ago · Juan Pablo Isaza Report

0

The easiest way to use a flag variable, by default set it to false and when KEYUP is clicked - set it to true. And check also your flag variable in your else if condition. Here is the code:

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 Report

0

I'm not sure I understand what you want to do, but can something like this resolve your problem ?

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!