MatterJS允许物体通过但仍会触发碰撞

时间:2020-01-11 18:46:07

标签: matter.js

我希望某些刚体能够彼此通过,即没有碰撞响应。尽管我仍然希望碰撞检测并触发碰撞事件Active:Events.on('collisionActive'),以便我可以在碰撞时执行一些代码。

Events.on(engine, 'collisionActive', (event) => {
  for (const body of event.pairs) {
    if (body.a collides with body.b) doSomeStuff(body.a, body.b)
  }
});

这些刚体位于“地板”或“平台”上,因此它们需要与这些墙或地板碰撞,但要穿过其他刚体。 一种选择是在category中为主体赋予collisionFilter,但这似乎不会触发碰撞主动事件。

我在这里可以做什么?

1 个答案:

答案 0 :(得分:0)

我通过手动遍历实体并使用Bounds.contains比较它们的边界来解决此问题。

if (Bounds.contains(bodyA.bounds, bodyB.position)) doSomeStuff()