Html5 canvas 如何确定一个形状与另一个形状接触或不使用kineticjs?

Html5 canvas 如何确定一个形状与另一个形状接触或不使用kineticjs?,html5-canvas,kineticjs,Html5 Canvas,Kineticjs,我的kinetc层中有许多形状。如果我将一个形状拖放到层中的其他位置,如何确定拖放的形状是否与另一个形状接触?您需要做的是创建一个您拥有的形状的数学表示。对于最简单的碰撞检测,可以使用边界框 基本上,如果你有一个圆,你可以创建一个表示它在一个框中的边界。 然后,如果有一个正方形,可以检查正方形的边界框(即正方形本身)是否与圆的边界框相交 我不久前写了一个答案: 函数checkCollide(pointX,pointY,objectx,objecty,objectw,objecth){//poin

我的kinetc层中有许多形状。如果我将一个形状拖放到层中的其他位置,如何确定拖放的形状是否与另一个形状接触?

您需要做的是创建一个您拥有的形状的数学表示。对于最简单的碰撞检测,可以使用边界框

基本上,如果你有一个圆,你可以创建一个表示它在一个框中的边界。
然后,如果有一个正方形,可以检查正方形的边界框(即正方形本身)是否与圆的边界框相交

我不久前写了一个答案:

函数checkCollide(pointX,pointY,objectx,objecty,objectw,objecth){//pointX,pointY属于一个矩形,而对象变量属于另一个矩形
var-oTop=objecty;
var-oLeft=objectx;
var-oRight=objectx+objectw;
var oBottom=objecty+objecth;
如果(点X>oLeft&&pointXoTop&&pointY
这样使用:

 var children = layer.getChildren();
 for( var i=0; i<children.length; i++){  // for each single shape
     for( var j=0; j<children.length; j++){ //check each other shape
         if(i != j){ //skip if shape is the same
            if(checkCollide(children[i].getX(), children[i].getY(), children[j].getX(), children[j].getY(), children[j].getWidth(), children[j].getHeight()))
                alert('top left corner collided');
         }
     }
 }
var children=layer.getChildren();

for(var i=0;iKineticJS没有内置的冲突检测。您必须从数学角度进行冲突检测。好的。谢谢您的回复。
 var children = layer.getChildren();
 for( var i=0; i<children.length; i++){  // for each single shape
     for( var j=0; j<children.length; j++){ //check each other shape
         if(i != j){ //skip if shape is the same
            if(checkCollide(children[i].getX(), children[i].getY(), children[j].getX(), children[j].getY(), children[j].getWidth(), children[j].getHeight()))
                alert('top left corner collided');
         }
     }
 }