我有一个数组,它是我正在研究的一个小JS游戏的一部分,我需要检查(经常合理)数组中的每个元素都没有离开“stage”或“游乐场”,所以我可以删除它们并保存脚本加载更高效的数字比较
我编码了下面,并想知道如果有人知道更快/更有效的方式来计算此。这是每50ms运行一次(它处理运动)。
其中bots[i][1]
是X中的移动,而bots[i][2]
是Y中的移动(互斥)。
for (var i in bots) {
var left = parseInt($("#" + i).css("left"));
var top = parseInt($("#" + i).css("top"));
var nextleft = left + bots[i][1];
var nexttop = top + bots[i][2];
if(bots[i][1]>0&&nextleft>=PLAYGROUND_WIDTH) { remove_bot(i); }
else if(bots[i][1]<0&&nextleft<=-GRID_SIZE) { remove_bot(i); }
else if(bots[i][2]>0&&nexttop>=PLAYGROUND_HEIGHT) { remove_bot(i); }
else if(bots[i][2]<0&&nexttop<=-GRID_SIZE) { remove_bot(i); }
else {
//alert(nextleft + ":" + nexttop);
$("#" + i).css("left", ""+(nextleft)+"px");
$("#" + i).css("top", ""+(nexttop)+"px");
}
}
在类似的注释中,remove_bot(i);功能如下,这是正确的(我无法接合,因为它改变了元素的所有的ID在数组中。
function remove_bot(i) {
$("#" + i).remove();
bots[i] = false;
}
对于提出的任何建议非常感谢!
真的很有用的建议,我会尽快发布更新的代码。不过,我不明白3号你的意思是否可以进一步提醒?非常感谢, – 2010-06-02 16:35:09
@PezCuckow:我已经扩展了我对#3的解释 – Matt 2010-06-02 16:45:44