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