matter.js技术 | 检测指定物体的碰撞

matter.js QQ交流群:796728825

关键代码

Events.on(engine, 'collisionStart', function(event) {
      var pairs = event.pairs;
       for (var i = 0; i < pairs.length; i++) {
           var pair = pairs[i];
           if(pair.bodyA==ball_1&&pair.bodyB==ball_2){

            //do something
        }
    }
}   

event.pairs为world中所有的碰撞实例,在for循环中,去检测每一对碰撞的物体,并判断其是否是目标物体。
tips:
bodyA和bodyB的判断:假设需要检测的碰撞物体为ball_1和ball_2,哪个是pair.bodyA,哪个是pair.bodyB呢?matter.js的机制是:物体的id小的是bodyA,id大的是bodyB
可以在生成render时,设置显示物体的id(showIds:true):

var render=Render.create({
        engine:engine,
        element:document.body,
        options:{
            width:window.innerWidth,
            height:window.innerHeight,
            background:"rgba(88,81,73,.9)",
            wireframes:false,
            showIds:true
        }
});

这样,可以看到每个物体的id。
另一个方法是:在matter中,先加入的物体的id小,后加入的物体id大

你可能感兴趣的:(matter.js)