javascript中两个正方形之间的碰撞检测

时间:2013-12-06 08:27:32

标签: javascript collision

我的代码中有问题,我可以通过点击它来移动红色(square1),我想要做的是当红色触摸蓝色时发现碰撞。我希望它在发生碰撞时改变颜色......

这是我的代码更清楚: http://jsbin.com/iFAlIyIv/4/edit

1 个答案:

答案 0 :(得分:1)

你的基本方法是正确的,问题是这样的:

  • 而不是square1.left,您需要square1.offsetLeft。元素没有left属性。 topwidthheight也是如此。

  • 您需要按类名选择元素,而不是document.getElementById("square2"),因为没有带有该ID的元素(只有具有该类的元素)。

  • 您正在呼叫changecouleur,但您可能打算致电colorswap。看起来像是一些未完成的重构。

此后您也不需要任何其他检查:

if (bl > ar || br < al) {
    return false;
} //overlap not possible
if (bt > ab || bb < at) {
    return false;
} //overlap not possible

如果这些条件都不成立,则必须重叠。

http://jsbin.com/iFAlIyIv/13/edit