Html 在KineticJS中检测动画形状之间的碰撞时遇到很多问题

Html 在KineticJS中检测动画形状之间的碰撞时遇到很多问题,html,kineticjs,Html,Kineticjs,我有一个固定在x轴上的矩形(矩形),但单击时向上移动其y轴,释放时向下移动其y轴 我有一个setInterval函数,它可以创建固定在y轴上的矩形实例(名称),并设置动画使其在舞台上从右向左移动。y值在setInterval函数中随机生成 我尝试了以下功能: var collisionDetection = function(a,b){ var status = false; var boardX = 350; var boardY = a.y(); var

我有一个固定在x轴上的矩形(矩形),但单击时向上移动其y轴,释放时向下移动其y轴

我有一个setInterval函数,它可以创建固定在y轴上的矩形实例(名称),并设置动画使其在舞台上从右向左移动。y值在setInterval函数中随机生成

我尝试了以下功能:

var collisionDetection = function(a,b){
    var status = false;

    var boardX = 350;
    var boardY = a.y();

    var attackX = b.x();
    var attackY = b.y();

    if(boardX == attackX){
        console.log('true');
    }

}

collisionDetection(rectangle,name)
以及:

函数doObjectsCollide(a,b){
如果((
((a.y()+a.getHeight())<(b.y())||
(a.y()>(b.y+b.getHeight())||
((a.x()+a.getWidth())(b.x()+b.getWidth())
));
console.log('true');
};
doObjectsCollide(矩形,名称)
这两种方法都不起作用。我不知道这是因为矩形的实例是在一个setInterval函数中创建的,这使得它出现了某种范围问题,还是因为x/y值在不断变化,但碰撞和动画是同时发生的,所以我不明白为什么会出现问题


我们将非常感谢在正确方向上提供的任何帮助

尝试一下更高效的重构:

演示:

函数doRectsCollide(a,b){
var ax=a.x();
var-ay=a.y();
var bx=b.x();
var by=b.y();
返回(
!(
(bx>ax+a.width())||
(bx+b.宽度()ay+a.高度())||

(by+b.height())您是最棒的!非常感谢您。对于任何有类似问题的人,请确保您将碰撞函数放在动画中。这将确保x和y值得到更新。再次感谢!
function doObjectsCollide(a, b) {
    if( !(
        ((a.y() + a.getHeight()) < (b.y())) ||
        (a.y() > (b.y + b.getHeight())) ||
        ((a.x() + a.getWidth()) < b.x()) ||
        (a.x() > (b.x() + b.getWidth()))
    ));

    console.log('true');
};

doObjectsCollide(rectangle,name)
function doRectsCollide(a,b){
    var ax=a.x();
    var ay=a.y();
    var bx=b.x();
    var by=b.y();
    return(
        !(
            (bx>ax+a.width()) || 
            (bx+b.width()<ax) || 
            (by>ay+a.height()) ||
            (by+b.height()<ay)
        )
    );
}