Материя JS позволяет телам проходить, но все же вызывает столкновение - PullRequest
0 голосов
/ 11 января 2020

Я хочу, чтобы некоторые твердые тела могли проходить друг через друга, то есть не иметь реакции на столкновение. Хотя я все еще хочу, чтобы столкновение обнаружило и вызвало событие для collisionsActive: 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, но, похоже, это не вызывает событие collisionActive.

Что я могу сделать здесь?

1 Ответ

0 голосов
/ 11 января 2020

Я решил это, вручную пройдя по Телам и сравнив их границы, используя Bounds.contains.

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