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
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.
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); })
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;
}
});
Maintaining a count flag & using it in the if(), can do the job.
refer following code.
let keyPressCount = 0;
if(){
//your code
}
else if ((event.key == "Up" || event.key == "w") && keyPressCount === 0) {
yloc = yloc - 50;
keyPressCount = 1
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.