Javascript画布冲突检测问题

时间:2019-02-02 18:46:23

标签: javascript html5-canvas

我一直在努力,现在这个问题一小会儿,我很乐意提供一些帮助。所以基本上就是这种情况。我有向上移动的帆布多个方格是所有(100 100)和后过一段时间重设到了谷底。我也有一个可控的立方体(20 20),其左右移动。游戏的目标是躲闪立方体直到达到一定的时间限制。但是我无法终生获得“飞船”和正方形工作的碰撞检测。有人有什么想法吗?下面是我的一些代码,已经在这样做有些成功(只有“飞船”打其他立方体寄存器的左侧)。

for(var n = 0; n < block.length; n++){
if(y > block[n].y && y < (block[n].y + 100 )){
    console.log(y + 100 + " " +  "y check1");
    if(x > block[n].x && x < block[n].x + 100){
        x += 20;
        console.log(x + 100 + " " +  "x check1");
     }
  }
}

注意:xy =船的位置, block.yblock.x =连续循环检查的块的位置。

我如果需要的话可以提供我的代码的其余部分。 谢谢!

1 个答案:

答案 0 :(得分:1)

这是基本的碰撞检测。有趣的是,它并不是真正在寻找碰撞,而是物体之间的间隙。没有差距,很受欢迎。

if (rect1.x < rect2.x + rect2.width &&
   rect1.x + rect1.width > rect2.x &&
   rect1.y < rect2.y + rect2.height &&
   rect1.height + rect1.y > rect2.y) {
// collision detected!
}