有人可以向我解释这是如何工作的,或链接到可以解释这一点的网站/视频。
if (rect1.x < rect2.x + rect2.width &&
rect1.x + rect1.width > rect2.x &&
rect1.y < rect2.y + rect2.height &&
rect1.height + rect1.y > rect2.y) {
// collision detected!
}
答案 0 :(得分:0)
你询问盒子到盒子的碰撞,在这里检查我的答案,它的android用于android但代码是一样的。它还具有3d碰撞的额外轴,但对于2d只是移除z轴
是相同的答案 1 :(得分:0)
首先,想象一下grid。向上和向下运行的线给出一个x坐标,左右运行的线给出一个y坐标。
该网格上的一个矩形(假设它与网格线对齐)将有4个坐标对:左上角,左下角,右上角,右下角。 rect.x
和rect.y
似乎是左下角的坐标。然后代码检查矩形之间是否有任何重叠。
此特定方法称为bounding box collision detection,链接中的MDN站点似乎是代码的来源。