繁体   English   中英

Javascript画布碰撞侧检测

[英]Javascript canvas collision side detection

嘿,我正试图找到画布中两个物体碰撞的一面。 这是我用于碰撞检测的内容,但它只检查碰撞,没有特定的一面。

其中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
}

你需要像这样的双重条件

if ((o1.y > o2.y) && (o1.y < o2.y + o2.h)) {
  return 'top'; // o1's top border collided with o2's bottom border
}

类似于其他方面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM