for(var a = 0; a < entitys.length; a++){ for(var b = a + 1; b < entitys.length; b++){ console.log(`${entitys[a].name}-${entitys[b].name} distance:${entitys[a].GetDistance(entitys[b])}`); } }
内循环并没有遍历所有的单位。它只是遍历了外循环还没有访问过的单位。这样就避免了对 每一对单位进行两次比较,正着比一次,反着再比一次。如果我们已经处理过了A和B之间的 碰撞,我们就不再需要再次检测B和A之间的碰撞了。