Javascript 何时清除jQuery中的间隔?

Javascript 何时清除jQuery中的间隔?,javascript,jquery,arrays,intervals,clearinterval,Javascript,Jquery,Arrays,Intervals,Clearinterval,我正在制作一个食物掉落游戏,让黑色方块从屏幕顶部掉落,玩家用盘子来收集它们。我用一个数组来做这件事,所以每次创建一个新的正方形时,程序都会把它放在数组食物[]中的某个位置上。所有这些都发生在移动函数中 问题是,经过一段时间后,阵列中有太多的方块,这对计算机来说太难处理了。我可能需要在一段时间后清除这两个间隔,但我不确定什么时候。这个问题有什么解决办法吗?当游戏重新加载时,代码也会清除这两个间隔,并从食物数组中丢弃旧方块 下面是一个活生生的例子 var main=函数{ //全局变量 var食品

我正在制作一个食物掉落游戏,让黑色方块从屏幕顶部掉落,玩家用盘子来收集它们。我用一个数组来做这件事,所以每次创建一个新的正方形时,程序都会把它放在数组食物[]中的某个位置上。所有这些都发生在移动函数中

问题是,经过一段时间后,阵列中有太多的方块,这对计算机来说太难处理了。我可能需要在一段时间后清除这两个间隔,但我不确定什么时候。这个问题有什么解决办法吗?当游戏重新加载时,代码也会清除这两个间隔,并从食物数组中丢弃旧方块

下面是一个活生生的例子

var main=函数{ //全局变量 var食品=[]; //间歇 var区间; var区间2; //半径大小 变量大小; var-Xpos; 无功转速=15; //颜色 颜色变异; var得分=0; $'.btn'.hover函数{ $'.btn'.addClass'btn-hover'; },功能{ $'.btn'.removeClass'btn-hover'; }; $'.btn2'.hover函数{ $'.btn2'.addClass'btn-hover'; },功能{ $'.btn2'.删除类'btn-hover'; }; $'.score'.textSCORE:+score; var lives_left=3; //检查两个元素是否碰撞的函数 函数冲突$div1,$div2{ 变量x1=$div1.offset.left; 变量y1=$div1.offset.top; var h1=$div1.outerHeighttrue; var w1=$div1.outerWidthtrue; var b1=y1+h1; var r1=x1+w1; var x2=$div2.offset.left; 变量y2=$div2.offset.top; var h2=$div2.outerHeighttrue; var w2=$div2.outerWidthtrue; var b2=y2+h2; var r2=x2+w2; 如果b1b2 | | r1r2返回false; 返回true; } //创建一个随机圆 var circleCreate=函数{ 如果间隔为ClearInterval; 食物。推美元; var num=食物长度-1; 尺寸=6; //1.创建一个圆并将其附加到.container //2.给它一个随机位置 //3.给它上色 //4.给它一条移动的路径 食物[num].appendTo.food.addClass'circle.css'height',size+'%'。css'width',size/2+'%'; Xpos=Math.roundMath.random*95;
如果Xpos有很多代码需要处理,但是如果我理解正确的话,从食物数组中移除元素并在到达屏幕底部时清除它的间隔应该是可行的。shift数组方法将允许您移除数组的第一个元素,这可能很有用,假设它们都具有相同的速度输入,首先输出。请将鼠标光标放回原位,当您移出屏幕时,您将看不到。另一方面,您正在设置一个间隔变量。但这是一个全局变量,因此它只引用一个计时器。您需要创建一个带有计时器的数组,该计时器可以与下降块数组交叉引用。