0

我有两个形状而不是可拖动的组。

拖动蓝色组时,它不应与黄色组重叠。

这是小提琴http://jsfiddle.net/bittu4u4ever/3Kprr/

我试着做一些getIntersections,但我真的是 kinetic.js 的菜鸟。

4

1 回答 1

0

你可能认为 getIntersections() 会得到碰撞对象,我也这么认为,但事实并非如此。它只给出容器的相交 CHILDREN(不是所有)对象。

您可以在矩形和/或组上运行碰撞检测逻辑。以下链接是如何检测矩形碰撞。您可以在拖动矩形时将其应用到您的代码中。

快速矩形到矩形相交

这是我如何使用 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;
}

您可能已经知道这一点,但以防万一;

  1. 组没有宽度/高度,组中的形状有。
  2. 组中的形状确实有 x/y 但相对于组。

希望能帮助到你

于 2013-02-07T15:27:26.310 回答