function checkCrash(Ax,Ay,Awidth,Aheight,Bx,By,Bwidth,Bheight){
            var bool=true;
            if((Ax+Awidth)<Bx||(Bx+Bwidth)<Ax||(Ay+Aheight)<By||(By+Bheight)<Ay){
                bool=false
            }
            return bool
        }

Ax,Ay,Awidth,Aheight 分别为元素A的x坐标、y坐标、宽度、高度

Bx,By,Bwidth,Bheight 分别为元素B的x坐标、y坐标、宽度、高度

思路:

 

假设A元素在中间:

  B元素整体在边界线3上方,A与B不可能发生碰撞

  B元素整体在边界线4下方,A与B不可能发生碰撞

  B元素整体在边界线1左方,A与B不可能发生碰撞

  B元素整体在边界线2右方,A与B不可能发生碰撞

当以上4种情况满足其中一种,即不会发生碰撞




 

版权声明:本文为momen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/momen/p/9450394.html