我有两个形状而不是可拖动的组。
拖动蓝色组时,它不应与黄色组重叠。
继承人http://jsfiddle.net/bittu4u4ever/3Kprr/
我尝试了一些getIntersections
,但我真的是kinetic.js中的菜鸟。
答案 0 :(得分:0)
你可能认为getIntersections()会让你碰到碰撞对象,我也这么认为,但事实并非如此。它只给出容器的相交CHILDREN(而不是所有)对象。
您可以在矩形和/或组上运行碰撞检测逻辑。 以下链接是如何检测矩形上的碰撞。拖动矩形时,可以将其应用到代码中。
Fast rectangle to rectangle intersection
这是我用KineticJS检测两个矩形碰撞的函数。
var isRectCollide = function(rect1, rect2) {
if (rect1.x - rect1.width >= rect2.x + rect2.width &&
rect1.y - rect1.height >= rect2.y + rect2.height &&
rect1.x + rect1.width <= rect2.x + rect2.width &&
rect1.x + rect1.height <= rect2.y - rect2.height )
return false;
else
return true;
}
您可能已经知道这一点,但以防万一;
希望有所帮助