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大。