Javascript 有没有办法处理这种循环(for循环)

Javascript 有没有办法处理这种循环(for循环),javascript,canvas,Javascript,Canvas,我正在制作一个agar.io克隆,我不知道如何处理我的分裂机制。为了分割blob,我制作了一个函数,该函数将blob作为参数 播放琼脂克隆 身体{ 保证金:0; 填充:0; } 请更新您的浏览器。 变量 帆布, ctx, 宽度=内部宽度, 高度=内部高度, mouseX=0, mouseY=0; 变量 摄像机={ x:0,, y:0, //摄像机 更新:功能(obj){ this.x=(obj.blobsExtent.minx+obj.blobsExtent.maxx)/2; this.y=

我正在制作一个agar.io克隆,我不知道如何处理我的分裂机制。为了分割blob,我制作了一个函数,该函数将blob作为参数


播放琼脂克隆
身体{
保证金:0;
填充:0;
}
请更新您的浏览器。
变量
帆布,
ctx,
宽度=内部宽度,
高度=内部高度,
mouseX=0,
mouseY=0;
变量
摄像机={
x:0,,
y:0,
//摄像机
更新:功能(obj){
this.x=(obj.blobsExtent.minx+obj.blobsExtent.maxx)/2;
this.y=(obj.blobsExtent.miny+obj.blobsExtent.maxy)/2;
这个.x-=宽度/2;
这.y-=高度/2;
}
},
玩家={
质量:54,,
x:0,,
y:0,
斑点:[],
斑点范围:{
minx:0,
米尼:0,
maxx:0,
马克西:0,
},
更新:函数(){
var be=this.blobsExtent;
for(var i=0;i0){
//这个.blobs[i].速度--;
//}
//}
对于(var j=0;j=此.defaultMass){
cell.mass/=2;
这个,滴,推({
x:cell.x,
y:手机,y,
质量:cell.mass,
分裂:是的,
速度:20
});
}
},
绘图:函数(){
for(var i=0;i
问题在循环中

    if (e.keyCode == 32) {
        for (var i = 0; i < player.blobs.length; i++) {
            player.split(player.blobs[i]);
        }
    }
    if (e.keyCode == 32) {
        var currentLength = player.blobs.length;
        for (var i = 0; i < currentLength; i++) {
            player.split(player.blobs[i]);
        }
    }
if(e.keyCode==32){
for(var i=0;i
每次添加blob时,都会增加数组的长度。由于该长度用于结束for循环,因此您将继续在添加的循环上循环

要修正,只需在循环之前获得长度

    if (e.keyCode == 32) {
        for (var i = 0; i < player.blobs.length; i++) {
            player.split(player.blobs[i]);
        }
    }
    if (e.keyCode == 32) {
        var currentLength = player.blobs.length;
        for (var i = 0; i < currentLength; i++) {
            player.split(player.blobs[i]);
        }
    }
if(e.keyCode==32){
var currentLength=player.blobs.length;
对于(var i=0;i
问题在循环中

    if (e.keyCode == 32) {
        for (var i = 0; i < player.blobs.length; i++) {
            player.split(player.blobs[i]);
        }
    }
    if (e.keyCode == 32) {
        var currentLength = player.blobs.length;
        for (var i = 0; i < currentLength; i++) {
            player.split(player.blobs[i]);
        }
    }
if(e.keyCode==32){
for(var i=0;i
每次添加blob时,都会增加数组的长度。由于该长度用于结束for循环,因此您将继续在添加的循环上循环

要修正,只需在循环之前获得长度

    if (e.keyCode == 32) {
        for (var i = 0; i < player.blobs.length; i++) {
            player.split(player.blobs[i]);
        }
    }
    if (e.keyCode == 32) {
        var currentLength = player.blobs.length;
        for (var i = 0; i < currentLength; i++) {
            player.split(player.blobs[i]);
        }
    }
if(e.keyCode==32){
var currentLength=player.blobs.length;
对于(var i=0;i
感谢您为您的问题提供了这样一个完整的示例:)您是否可以突出显示您特别关注的代码部分?这将真正帮助人们解决这个问题。感谢您为您的问题提供了这样一个完整的示例:)您是否可以突出显示您特别关注的代码部分?这真的会帮助人们解决这个问题。thanx它起作用了。我没有尝试,因为我认为当循环检查条件时,变量将更新其值。thanx它起作用了。我没有尝试,因为我认为当循环检查条件时,变量将更新其值。