Эй, я пытаюсь получить сторону, с которой сталкиваются два объекта на холсте. Вот что я использую для обнаружения столкновений, но он проверяет только столкновения без определенной стороны.
Где o1 и o2 - объекты, обладающие свойствами:
x
- позиция по оси X
y
- позиция по оси Y
w
- ширина прямоугольника
h
- высота прямоугольника
var collidesWith = function (o2) {
var o1 = this;
if ((o1.y + o1.h) < o2.y) {
return 0;
}
if (o1.y > (o2.y + o2.h)) {
return 0;
}
if ((o1.x + o1.w) < o2.x) {
return 0;
}
if (o1.x > (o2.x + o2.w)) {
return 0;
}
return 1;
};
РЕДАКТИРОВАТЬ : Вот код, который я нашел для обнаружения столкновения на вершине элемента:
if (
(o1.y - o1.dy >= o2.y) &&
(o1.y - o1.dy <= o2.y + o2.h) &&
(o1.x + o1.w >= o2.x) &&
(o1.x <= o2.x + o2.w)
) {
// We have collision at the top end
}