gpt4 book ai didi

JavaScript/JQuery 如何设置再次调用方法之前的时间?

转载 作者:行者123 更新时间:2023-12-02 17:38:24 25 4
gpt4 key购买 nike

我正在开发一款游戏。我的事件处理程序使用 JQuery,游戏是用 JavaScript 编写的,我一直在尝试找到在事件监听器再次调用方法之前设置时间的最佳方法。

这是我当前的事件监听器:

function shootingHandler(key){
switch(parseInt(key.which, 10)){
case UpArrow:
case Spacebar:
setTimeout(player.shoot(), 1000);
break;
}
}

setTimeout() 方法对此不起作用,因为它只是调用该方法,然后等待指定的时间,然后触发它。因此,在我的示例代码中,我试图让玩家每秒只能射击一次,但如果玩家按住空格键,它会自动射击数千次。

有什么好方法可以使一个方法一次只能调用一次,每隔几秒左右只能调用一次?

最佳答案

var disabled = false;
var shootOnEnabled = false;
function shootingHandler(key){
switch(parseInt(key.which, 10)){
case UpArrow:
case Spacebar:
if (disabled) {
shootOnEnabled = true;
break;
}
shoot();
disabled = true;
setTimeout(function () {
disabled = false;
if (shootOnEnabled) {
shootOnEnabled = false;
shootingHandler(key);
}
}, 1000);
break;
}
}

关于JavaScript/JQuery 如何设置再次调用方法之前的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433332/

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