我正在尝试创建一个collisionDetector函数,该函数会在两个对象发生碰撞时发出通知。我以前做过这个,但后来只有一个主要对象,所有其他对象都是数组的一部分。所以这没问题,但现在我有几个单独的对象。有没有办法让一个函数注意到几个对象之间的所有碰撞?这是我的对象的函数:
var myBrick1 = new object(brick1.img, brick1.x, brick1.y, brick1.width, brick1.height);
var myBrick2 = new object(brick2.img, brick2.x, brick2.y, brick2.width, brick2.height);
var myBrickV1 = new object(brickV1.img, brickV1.x, brickV1.y, brickV1.width, brickV1.height);
function object(img,x,y,width,height){
this.Sprite = new Image();
this.Sprite.src = img;
this.X = x;
this.Y = y;
this.Width = width;
this.Height = height;
}
function drawBrick(whichBrick){
ctx.drawImage(whichBrick.Sprite, whichBrick.X, whichBrick.Y, whichBrick.Width, whichBrick.Height);
}
(我使用mouseup,mousedown和mousemove事件为我的对象制作单击和拖动功能)
答案 0 :(得分:0)
由于你的对象都是矩形,你只需要检查它们的坐标是否重叠(我看到你有x,y,宽度,高度,所以你有所有的数据,其余的是一些数学:显示更多努力)。
我在这里的类似帖子中写了更详细的答案:[collision detection for paddle (pong/breaking block game)