JS实现判断碰撞的方法

本文实例讲述了JS实现判断碰撞的方法分享给大家供大家参考。具体如下:

JS判断碰撞方法

代码如下:
aram obj 原对象 * @param dobj 目标对象 */ function impact(obj,dobj) { var o = { x: getDefaultStyle(obj,'left'), y: getDefaultStyle(obj,'top'), w: getDefaultStyle(obj,'width'), h: getDefaultStyle(obj,'height') }

var d = {
x: getDefaultStyle(dobj,
y: getDefaultStyle(dobj,
w: getDefaultStyle(dobj,
h: getDefaultStyle(dobj,'height')
}

var px,py;

px = o.x <= d.x ? d.x : o.x;
py = o.y <= d.y ? d.y : o.y;

// 判断点是否都在两个对象中
if (px >= o.x && px <= o.x + o.w && py >= o.y && py <= o.y + o.h && px >= d.x && px <= d.x + d.w && py >= d.y && py <= d.y + d.h) {
return true;
} else {
return false;
}
}

/** 获取对象属性

  • @param obj 对象
  • @param attribute 属性
    */
    function getDefaultStyle(obj,attribute) {
    return parseInt(obj.currentStyle ? obj.currentStyle[attribute] : document.defaultview.getComputedStyle(obj,false)[attribute]);
    }

示例如下:

代码如下:
demo