我只是开发一个简单的气球游戏与两个div。问题是,当两个div相互接触时,我无法触发一个函数。
解决方法
你正在寻找边界框碰撞检测。如果你想提出一个事件,你必须反复测试,但最好只是从你的游戏循环的所有游戏对象运行该函数。沙箱在
http://jsfiddle.net/nGRwt/7/
- function collision($div1,$div2) {
- var x1 = $div1.offset().left;
- var y1 = $div1.offset().top;
- var h1 = $div1.outerHeight(true);
- var w1 = $div1.outerWidth(true);
- var b1 = y1 + h1;
- var r1 = x1 + w1;
- var x2 = $div2.offset().left;
- var y2 = $div2.offset().top;
- var h2 = $div2.outerHeight(true);
- var w2 = $div2.outerWidth(true);
- var b2 = y2 + h2;
- var r2 = x2 + w2;
- if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
- return true;
- }