我正在研究一个项目的一部分,我试图检测某些div是否相互碰撞。在我制作的代码中,这不起作用,我基本上说取第一个div的左边数量,将它与其他div的左边数量进行比较,如果它们在一定数量内触发警报。如果我得到那么多工作,我将植入一种方式来说,如果两个div之间的距离为0,那么它将运行某个功能。我担心这个项目的范围对我来说太大了,尽管我基本上处于最后一部分,因为我花了几个小时研究一种简单的方法来添加碰撞检测,但我发现的一切看起来像火箭科学对我来说,这就是我尝试在下面创建自己的方式的原因。 总而言之,我想知道的是为什么我的碰撞检测代码不起作用,如果可能的话我怎么能让它工作,如果不可能的话,我应该使用的下一个最佳选择是什么。
//Collision
function collision(){
var tri = $('#triangle');
var enemyPos = $('.object1').css('left');
var minHit = enemyPos - 32.5;
var maxHit = enemyPos + 32.5;
var triLoc = tri.css('left');
if(triLoc > minHit && triLoc < maxHit){
alert('hit');
}
}
collision();
}
}
答案 0 :(得分:0)
如果您上面的代码肯定是问题所在,那么您需要查看enemyPos
变量。获取左侧位置也会添加px
,因此enemyPos
为100px
或类似的内容。当你添加32.5时,你会得到100px32.5
,当你减去时,得到NaN
,这两者都不是你想要的。
在您添加或减去之前,请使用enemyPos = parseInt($('.object1').css('left'));
将其变为实际数字。