2012-01-15 5 views
-2

Здесь я нашел код столкновения JS. Это:JavaScript Collision

function isCollide(a, b) { 
    return !(
     ((a.y + a.height) < (b.y)) || 
     (a.y > (b.y + b.height)) || 
     ((a.x + a.width) < b.x) || 
     (a.x > (b.x + b.width)) 
    ); 
} 

мне нужно что-то простое, как это, но мне нужно знать, если он столкнулся с левой стороны, с правой стороны, верхней стороне или нижней стороне.

У вас есть код для этого или что-то, пожалуйста,

+1

Удалось выяснить, что это делает, и в дальнейшем пытался внести изменения? Если нет, то кто-то, предоставляющий «расширенный» код, не собирается оставлять вас мудрее. –

+0

Какие попытки вы сделали, чтобы изменить код, который вы нашли? –

+6

Я думаю, вы, ребята, не получили записку; программирование - это современная алхимия. Это просто волшебство. Дай мне код! –

ответ

1

Просто сделать использование кода, если заявления для каждого из указанных выше случаев, а затем, когда один из них является истинным возвращение код, который относится к тому, что сторона столкновение. т.е.

function isCollide(a, b) { 
if(!((a.y + a.height) < (b.y))) 
    return 1; 
else if(!(a.y > (b.y + b.height))) 
    return 2; 
else if(!((a.x + a.width) < b.x)) 
    return 3; 
else if(!(a.x > (b.x + b.width))(
    return 4; 
return false; 
} 

Затем в вызывающем проверки кода, чтобы увидеть, что функция возвращает