如何解决Javascript setInterval 一段时间后“崩溃”?
我正在创建一个“子弹地狱”风格的游戏,并且有多个 setIntervals 函数用于生成敌人、单人、子弹、计时器以及 setIntervals 来测量不同对象之间的碰撞,以便它知道要做什么(例如受到伤害,增加生命等)。虽然代码运行良好,但过了一段时间(我试过多次运行,通常在 40-60 秒左右,但有时长达 5 分钟后),它基本上“崩溃”了 - 我的碰撞不再起作用,并且生成间隔类似于每秒一次。我试过弄乱 setInterval 计时器,但似乎没有任何效果,整个代码相当长,所以我将其粘贴到 pastebin here 中,感谢您的帮助!
否则,运行的间隔在这里:
let startGame = function(ev){
bulletHellPopup.style.display = "none"
if (isMouseUp === false && isEndlessOn === false){ //puting this in a conditional stops the spawnEnemy function from running multiple times
isMouseUp = true;
spawn = setInterval(spawnEnemy,100); //manipulate this value to adjust spawn rate
time = setInterval(startTimer,100)
loadTime = Date.now();
};
if (isMouseUp === false && isEndlessOn === true){
isMouseUp = true;
spawn = setInterval(endlessSpawn,150); //manipulate this value to adjust spawn rate
time = setInterval(startTimer,100)
loadTime = Date.now();
spawnLivesVariable = setInterval(spawnLives,10000);
shootFunction = setInterval(spawnBullets,75);
};
};
let damage = function(ev){
collision(playerCircle,bulletArray);
//console.log(bulletArray.length)
};
let oneUp = function(ev){
collisionLife(playerCircle,lifeArray);
};
let shooting = function(ev){
collisionShoot(shootArray,bulletArray);
};
setInterval(damage,50);
setInterval(oneUp,50);
setInterval(shooting,50);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。