请参阅下面的代码以每秒60帧的速度运行..如果点击任何按钮,isjump将被设置为true,并且代码开始下面。我正在尝试的是我需要退出jump()函数1秒钟之后。我试着像下面那样......但是settime out里面的行仍无限期地运行......请帮助我。
我实际上尝试的是1秒后退出跳跃功能。
function jump() {
if (isjump) {
player.posx +=10;
console.log("jumping"); //this line is stopped after 1 second
setTimeout(function () {
isjump = false;
console.log("stopped"); //but this line is continuing
}, 1000);
}
}
我也试过clearTimeout仍然没用。
var timeoutHandle = window.setTimeout(function () {
isjump = false;
console.log("stopped");
clearTimeout(timeoutHandle);
}, 500);
编辑:对于那些认为这个跳跃功能被连续调用的人......是的,它被连续调用......对于每个帧游戏,角色位置都会被更新。
答案 0 :(得分:0)
好的我找到了解决方案..我通过在循环内只运行一次settimeout函数来解决它。
var once = true;
function jump() {
if (isjump) {
player.posx +=10;
console.log("jumping"); //this line is stopped after 1 second
if(once)
{
setTimeout(function () {
isjump = false;
console.log("stopped"); //but this line is continuing
}, 1000);
}
once = false;
}
}