Вообще смысл только в этих строчках
// enemy
var enemys = [
new Enemy(20, 20, 1, '#00f', [10, 10], [200, 20]),
new Enemy(20, 20, 1, '#0f0', [20, 90], [300, 120]),
new Enemy(20, 20, 1, '#acacac', [50, 170], [150,190]),
new Enemy(20, 20, 1, '#5577cc', [30, 290], [30, 290]),
new Enemy(100, 10, 1, '#444', [30, 410], [30, 410])
]
// is_collis
var is_collis = function (a, b) {
return !( a.pos[0] + a.width <= b.pos[0] || b.pos[0] + b.width <= a.pos[0] || a.pos[1] + a.height <= b.pos[1] || b.pos[1] + b.height <= a.pos[1] );
};
// Draw
var draw = function () {
ctx.clearRect(0, 0, canv.width, canv.height);
for(var i = 0; i < enemys.length; i += 1){
if( !is_collis(player, enemys[i]) ){
moveToDirect(player);
}
}
}
Есть объекты enemy и player, у них есть свойства, но в общем это не важно)
Смысл в том что при проверке "is_collis" оно обнаруживает только последнего enemy, хотя цикл перебора всех enemy добавил...