球形物体碰撞检测。
var dx = objectB.x - objectA.x, dy = objectB.y - objectB.y, dist = Math.sqrt(dx * dx + dy * dy); if ( dist < objectA.radius + objectB.radius ){ 碰撞 }01.
02.
03.
04.
05.
06.
07.
举个例子:
;(function(){ var ballA = {},w = {}; var d1 = document.querySelector('.moveBall3'), d2 = document.querySelector('.moveBall4'); w.a = d1.offsetWidth/2; w.b = d2.offsetWidth/2; ballA.x=d1.getBoundingClientRect().left + pageXOffset+ w.a; ballA.y=d1.getBoundingClientRect().top + pageYOffset+ w.a; wrapBox9.onmousemove = function(ev){ d2.style.left = ev.pageX - this.offsetLeft - w.b + 'px'; d2.style.top = ev.pageY - this.offsetTop- w.b + 'px'; var dx=(d2.getBoundingClientRect().left + w.b + pageXOffset)-ballA.x, dy=(d2.getBoundingClientRect().top + w.b + pageYOffset)-ballA.y, dist=Math.sqrt(dx*dx+dy*dy); if(dist<=w.a+w.b){ //碰到了 } }; })();01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
碰我
多个物体:
你好
我去
😛 还帅
😮 😮 666@霸
😀 奈斯
😳 😀 能不能写个反弹的
你会
很好 非常好
😎 ikudscssdsa的份上
🙂 你好