方法一 用js写示例
//矩形碰撞检测,设矩形的左上顶点是(x, y), 宽w, 高h, 那么只要存在以下情况一定不相交, 否则是相交的
function rectangleCol(x1, y1, w1, h1, x2, y2, w2, h2) {
var maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2;
var maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2;
var minX = x1 <= x2 ? x1 : x2;
var minY = y1 <= y2 ? y1 : y2;
if (maxX - minX < w1 + w2 && maxY - minY < h1 + h2) { //边界值
return true; //相交
} else {
return false;
}
}
方法二用C++ 写示例
int Controller::isRectOverlap( MyDiv & r1, MyDiv & r2)
int r1left =r1.x;
int r1top =r1.y;
int r1right =r1left + r1.w - 1;
int r1bottom =r1top + r1.h - 1;
int r2left = r2.x;
int r2top = r2.y;
int r2right = r2left + r2.