JavaScript的帆布碰撞检测问题

问题描述 投票:0回答:1

我一直在努力,现在这个问题一小会儿,我很乐意提供一些帮助。所以基本上继承人的情况。我有向上移动的帆布多个方格是所有(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的位置=块的位置不断循环检查。

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

javascript html5-canvas
1个回答
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!
}
© www.soinside.com 2019 - 2024. All rights reserved.