Javascript / Jquery中的简单碰撞检测?

时间:2016-09-08 22:39:52

标签: javascript jquery html jquery-ui collision-detection

我正在研究一个项目的一部分,我试图检测某些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();
}
}

完整代码:https://jsfiddle.net/kc59vzpy/

1 个答案:

答案 0 :(得分:0)

如果您上面的代码肯定是问题所在,那么您需要查看enemyPos变量。获取左侧位置也会添加px,因此enemyPos100px或类似的内容。当你添加32.5时,你会得到100px32.5,当你减去时,得到NaN,这两者都不是你想要的。

在您添加或减去之前,请使用enemyPos = parseInt($('.object1').css('left'));将其变为实际数字。