嘿,我正在尝试获取画布中两个对象碰撞的一侧。这是我用于碰撞检测的内容,但它仅检查碰撞,而不检查特定的侧面。
其中 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;
};
EDIT:这是我为元素顶部的碰撞检测而提出的代码:
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
}
你需要double-这样的条件:
if ((o1.y > o2.y) && (o1.y < o2.y + o2.h)) {
return 'top'; // o1's top border collided with o2's bottom border
}
其他方面也同样如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)