不遍历 for 循环 - javascript
Not looping through for loop - javascript
以下代码中的 for 循环似乎没有被激活。
var updateMobs = function(){
for (var b = 0; b < mobsBlue; b++){
BM = mobsBlue[b]
BM.x = BM.x - 1
doCollision(BM, redBase, BM)
doCollision(BM, debugPlayer, BM)
console.log("draw1")
BM.Draw(ctx, false)
}
for (var r = 0; r < mobsRed; r++){
RM = mobsRed[r]
RM.x = RM.x + 1
doCollision(RM, blueBase, RM)
doCollision(RM, debugPlayer, RM)
console.log("draw2")
RM.Draw(ctx, false)
for (var bb = 0; bb < mobsBlue; bb++){
BM = mobsBlue[bb]
console.log("draw3")
BM.Draw(ctx, false)
RM.Draw(ctx, false)
}
}
}
此外,如果您有任何改进,请随时评论我可以对我的代码做的任何改进,以使这项工作更好。我也知道我的 javascript 末尾没有分号所以不要评论我
我没有收到任何错误,mobsBlue 和 mobsRed 都是数组。
此外,我正在循环调用此函数。
对不起,冒犯了。这是不必要的,我应该回答这个问题:|。谢谢你帮助我
诚挚的歉意
因为这是一个函数,所以一定要用 updateMobs();
调用它。
我相信 mobsBlue
和 mobsRed
是数组(因为你调用 mobsBlue[b]
并对其进行索引),所以对于你的 for
循环,你想要循环 for (var b = 0; b < mobsBlue.length; b++){
因此:
var arr = [1, 2, 3, 4]
for(var i = 0;i < arr.length;i++){
item = arr[i]
alert(item)
}
这是您编辑的代码:
var updateMobs = function(){
for (var b = 0; b < mobsBlue.length; b++){
BM = mobsBlue[b]
BM.x = BM.x - 1
doCollision(BM, redBase, BM)
doCollision(BM, debugPlayer, BM)
console.log("draw1")
BM.Draw(ctx, false)
}
for (var r = 0; r < mobsRed.length; r++){
RM = mobsRed[r]
RM.x = RM.x + 1
doCollision(RM, blueBase, RM)
doCollision(RM, debugPlayer, RM)
console.log("draw2")
RM.Draw(ctx, false)
for (var bb = 0; bb < mobsBlue.length; bb++){
BM = mobsBlue[bb]
console.log("draw3")
BM.Draw(ctx, false)
RM.Draw(ctx, false)
}
}
}
#1 给看不懂这个简单代码的人打电话'retarded' 太冒犯了
#2 您是否在其他代码的某处调用了 updateMobs 函数?
#3 我假设 mobsBlue 是一个像 njzk2 所说的数组,也许你的意思是得到它的长度?使用:
for (var b = 0; b < mobsBlue.length; b++)
与 mobsRed 相同。
以下代码中的 for 循环似乎没有被激活。
var updateMobs = function(){
for (var b = 0; b < mobsBlue; b++){
BM = mobsBlue[b]
BM.x = BM.x - 1
doCollision(BM, redBase, BM)
doCollision(BM, debugPlayer, BM)
console.log("draw1")
BM.Draw(ctx, false)
}
for (var r = 0; r < mobsRed; r++){
RM = mobsRed[r]
RM.x = RM.x + 1
doCollision(RM, blueBase, RM)
doCollision(RM, debugPlayer, RM)
console.log("draw2")
RM.Draw(ctx, false)
for (var bb = 0; bb < mobsBlue; bb++){
BM = mobsBlue[bb]
console.log("draw3")
BM.Draw(ctx, false)
RM.Draw(ctx, false)
}
}
}
此外,如果您有任何改进,请随时评论我可以对我的代码做的任何改进,以使这项工作更好。我也知道我的 javascript 末尾没有分号所以不要评论我
我没有收到任何错误,mobsBlue 和 mobsRed 都是数组。
此外,我正在循环调用此函数。
对不起,冒犯了。这是不必要的,我应该回答这个问题:|。谢谢你帮助我
诚挚的歉意
因为这是一个函数,所以一定要用 updateMobs();
调用它。
我相信 mobsBlue
和 mobsRed
是数组(因为你调用 mobsBlue[b]
并对其进行索引),所以对于你的 for
循环,你想要循环 for (var b = 0; b < mobsBlue.length; b++){
因此:
var arr = [1, 2, 3, 4]
for(var i = 0;i < arr.length;i++){
item = arr[i]
alert(item)
}
这是您编辑的代码:
var updateMobs = function(){
for (var b = 0; b < mobsBlue.length; b++){
BM = mobsBlue[b]
BM.x = BM.x - 1
doCollision(BM, redBase, BM)
doCollision(BM, debugPlayer, BM)
console.log("draw1")
BM.Draw(ctx, false)
}
for (var r = 0; r < mobsRed.length; r++){
RM = mobsRed[r]
RM.x = RM.x + 1
doCollision(RM, blueBase, RM)
doCollision(RM, debugPlayer, RM)
console.log("draw2")
RM.Draw(ctx, false)
for (var bb = 0; bb < mobsBlue.length; bb++){
BM = mobsBlue[bb]
console.log("draw3")
BM.Draw(ctx, false)
RM.Draw(ctx, false)
}
}
}
#1 给看不懂这个简单代码的人打电话'retarded' 太冒犯了
#2 您是否在其他代码的某处调用了 updateMobs 函数?
#3 我假设 mobsBlue 是一个像 njzk2 所说的数组,也许你的意思是得到它的长度?使用:
for (var b = 0; b < mobsBlue.length; b++)
与 mobsRed 相同。