首页 > 编程 > JavaScript > 正文

js实现碰撞检测特效代码分享

2019-11-20 08:44:25
字体:
来源:转载
供稿:网友

自己做了碰撞检测的封装,先看下实例demo,在看封装

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>碰撞检测</title> <style type="text/css">  *{  margin: 0;  padding: 0;  }  #divA,#divB{  width: 200px;  height: 200px;  background-color: purple;  font-size: 50px;  line-height: 200px;  text-align: center;  position: absolute;  color: #fff;  }  #divA{  left: 30px;  top: 30px;  z-index: 5;  }  #divB{  left: 300px;  top: 300px;  } </style> </head> <body> <div id="divA">A</div> <div id="divB">B</div> </body> <script type="text/javascript"> var divA = document.getElementById("divA"); var divB = document.getElementById("divB");   divA.onmousedown = function (e) {    var event1 = window.event || e;      var startX = event1.clientX;    var startY = event1.clientY;    document.onmousemove = function (j) {    var event2 = window.event || j;    var endX = event2.clientX;  var endY = event2.clientY;    divA.style.left = divA.offsetLeft + (endX - startX) + "px";  divA.style.top = divA.offsetTop + (endY - startY) + "px";    startX = endX;  startY = endY;    if (isCrash(divA,divB) == true) {      divA.style.backgroundColor = "red";  } else{      divA.style.backgroundColor = "purple";  };  } }   divA.onmouseup = function () {    document.onmousemove = null; }   function isCrash (obj1,obj2) {    var boolCrash = true;    var left1 = obj1.offsetLeft;    var right1 = obj1.offsetLeft + obj1.offsetWidth;    var top1 = obj1.offsetTop;    var bottom1 = obj1.offsetTop + obj1.offsetHeight;    var left2 = obj2.offsetLeft;    var right2 = obj2.offsetLeft + obj2.offsetWidth;    var top2 = obj2.offsetTop;    var bottom2 = obj2.offsetTop + obj2.offsetHeight;      if (right1 > left2 && left1 < right2 && bottom1 > top2 && top1 < bottom2) {  boolCrash = true;  } else{  boolCrash = false;  }  return boolCrash; }  </script></html>

函数封装

 function isCrash (obj1,obj2) {    var boolCrash = true;//假设true为碰撞    var left1 = obj1.offsetLeft;    var right1 = obj1.offsetLeft + obj1.offsetWidth;    var top1 = obj1.offsetTop;    var bottom1 = obj1.offsetTop + obj1.offsetHeight;   var left2 = obj2.offsetLeft;    var right2 = obj2.offsetLeft + obj2.offsetWidth;    var top2 = obj2.offsetTop;    var bottom2 = obj2.offsetTop + obj2.offsetHeight;      if (right1 > left2 && left1 < right2 && bottom1 > top2 && top1 < bottom2) {  boolCrash = true;  } else{  boolCrash = false;  }  return boolCrash; }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表