【发布时间】:2014-11-04 09:53:21
【问题描述】:
我有一个设定的时间间隔来检查我的雪橇是否撞到树上。
var sled = $("#sled")
var tree = $(".tree")
var hitting = setInterval(function() {
var treeHit = hitTest(sled,tree )
if (treeHit == true ) {
gameOver()
}
}, 1);
调用我的 hitTest 函数,返回 true 或 false。
function hitTest(a, b) {
var aTop = a.offset().top;
var aLeft = a.offset().left;
var bTop = b.offset().top;
var bLeft = b.offset().left;
return !(
((aTop + a.height()) < (bTop)) ||
(aTop > (bTop + b.height())) ||
((aLeft + a.width()) < bLeft) ||
(aLeft > (bLeft + b.width()))
);
}
这很好用,但仅适用于具有“树”类的第一个 dom 元素(我有多个),我不确定为什么它不适用于所有人?
【问题讨论】:
-
$(".tree")返回匹配元素的 jQuery 集合。您需要遍历此集合(使用.each())以检查与tree中的每个项目的冲突
标签: jquery collision-detection hittest