0

ドラッグ可能なグループではなく、2 つの形状があります。

青色のグループをドラッグすると、黄色のグループと重なってはなりません。

フィドルはこちらhttp://jsfiddle.net/bittu4u4ever/3Kprr/

私はいくつかやってみgetIntersectionsましたが、私は本当にkinetic.jsの初心者です。

4

1 に答える 1

0

getIntersections() が衝突するオブジェクトを取得すると思うかもしれませんが、私もそう思いましたが、そうではありません。コンテナの交差するCHILDREN(すべてではない)オブジェクトのみを提供します。

長方形やグループに対して衝突検出ロジックを実行できます。次のリンクは、長方形の衝突を検出する方法です。四角形をドラッグするときに、これをコードに適用できます。

長方形から長方形への高速交差

これが、KineticJS を使用して 2 つの四角形の衝突を検出する方法の関数です。

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 に答える