我已经在这个问题上挣扎了很短一段时间,我希望得到一些帮助。所以基本上情况就是这样。我有多个方块,都是(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");
     }
  }
}注意:x和y =船的位置,block.y和block.x =要检查的连续循环的块的位置。
如果需要,我可以提供其余的代码。谢谢!
发布于 2019-02-03 02:50:24
这是一个基本的碰撞检测。有趣的是,它实际上并不是在寻找碰撞,而是在寻找物体之间的间隙。没有缝隙,它被击中了。
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!
}https://stackoverflow.com/questions/54496349
复制相似问题