gpt4 book ai didi

javascript - 如何使键盘按钮不会在 JavaScript 中收到垃圾邮件。 (拖延时间)

转载 作者:行者123 更新时间:2023-12-03 01:21:42 24 4
gpt4 key购买 nike

当我想要跳跃时,我正在开发 Babylon.js。我找到了一个网站并复制了它的跳转代码,并且完美运行!但我想做一款真正的游戏,我不希望人们乱按空格键就飞起来。我怎样才能让它有几秒钟的延迟,这样就没有人可以继续发送空格键并继续飞行?

function jump(){
camera.cameraDirection.y = 2;
}

document.body.onkeyup = function(e){
if(e.keyCode == 32){
//your code
console.log("jump");
setTimeout(jump(), 1000);

}
}

链接到我的游戏

https://playground.babylonjs.com/#JCE1G3

最佳答案

一种选择是创建一个持久 bool 变量,例如 justJumped,并且仅在 justJumpedfalse 时才跳转。跳跃时,将 justJumped 设置为 true,并创建一个超时,在跳跃持续时间(看起来不到半秒)后将其重置回 false :

let justJumped = false;
document.body.onkeyup = function(e) {
if (e.keyCode == 32 && !justJumped) {
justJumped = true;
setTimeout(() => justJumped = false, 400)
console.log("jump");
jump();
}
}

另请注意,setTimeout(jump(), 1000);可能没有按照您的想法进行操作 - 它立即调用jump/em>.如果您想在 1000 毫秒后调用 jump 函数,只需传递函数名称本身:

let justJumped = false;
document.body.onkeyup = function(e) {
if (e.keyCode == 32 && !justJumped) {
justJumped = true;
setTimeout(() => justJumped = false, 1400)
console.log("jump");
setTimeout(jump, 1000);
}
}

关于javascript - 如何使键盘按钮不会在 JavaScript 中收到垃圾邮件。 (拖延时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com