Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有任何方法可以检查每个超时中的游戏结束条件,但调用main函数以通过单个函数重新启动游戏_Javascript_Html_Web - Fatal编程技术网

Javascript 是否有任何方法可以检查每个超时中的游戏结束条件,但调用main函数以通过单个函数重新启动游戏

Javascript 是否有任何方法可以检查每个超时中的游戏结束条件,但调用main函数以通过单个函数重新启动游戏,javascript,html,web,Javascript,Html,Web,我正在制作一个游戏,其中我有5名玩家,每个人都使用setTimeout方法移动,该方法在调用另一个setTimeout方法后重复 然而,当游戏结束时,我需要停止所有当前超时,并调用主函数重新开始游戏。由于英雄可以通过触摸任何恶棍而被杀死,我必须在他们的超时中检查这种情况。如果在任何一个超时中满足了这个条件,所有的超时都会被清除,并调用main函数重新开始游戏 问题是,许多暂停仍在后台进行。有没有办法在每次暂停时检查比赛结束情况?我认为每次超时都会调用主函数。 返回一个可与一起使用的计时器id 取

我正在制作一个游戏,其中我有5名玩家,每个人都使用
setTimeout
方法移动,该方法在调用另一个
setTimeout
方法后重复

然而,当游戏结束时,我需要停止所有当前超时,并调用主函数重新开始游戏。由于英雄可以通过触摸任何恶棍而被杀死,我必须在他们的超时中检查这种情况。如果在任何一个超时中满足了这个条件,所有的超时都会被清除,并调用main函数重新开始游戏

问题是,许多暂停仍在后台进行。有没有办法在每次暂停时检查比赛结束情况?我认为每次超时都会调用主函数。

返回一个可与一起使用的计时器id 取消计时器。如果您跟踪这些ID,您可以取消任何 比赛结束时有出色的计时员

让NPC=[];
让createNPC=(延迟,逻辑)=>{
//创建一个运行NPCs逻辑的函数
//然后调用setTimeout,存储计时器id
//作为返回函数的属性
让runLogic=function(){
逻辑();
runLogic.timerId=setTimeout(runLogic,delay);
};
//启动NPC运行
runLogic.timerId=setTimeout(runLogic,delay);
//返回对此函数的引用,以便
//您可以存储它,以后再使用它
返回运行逻辑;
};
让gameOver=()=>{
//循环所有NPC函数并取消
//他们所有的计时器
npcs.forEach(npc=>{
clearTimeout(npc.timerId);
});
console.log(“游戏结束”);
};
//创建新的NPC并将其存储在NPC阵列中
push(createNPC(1000,()=>console.log('npc1做了某事'));
push(createNPC(1500,()=>console.log('npc2做了某事'));
push(createNPC(2000,()=>console.log('npc3做了某事'));
push(createNPC(2200,()=>console.log('npc4做了某事'));
//在本演示中,只需在10秒后结束游戏
设置超时(gameOver,10*1000)