JavaScript, Matter.js: Disable collision for one body - Stack Overflow

As already mentioned in the title, I am looking for a way, to disable every collision of a body in Matt

As already mentioned in the title, I am looking for a way, to disable every collision of a body in Matter.js. It should still be linkable with Constraints, and there should be the possibility of enabling the collision again after some time. Is there a way to do this? The hard thing about it, is that the object should not collide with any other object, but all the other objects should collide with each other.

As already mentioned in the title, I am looking for a way, to disable every collision of a body in Matter.js. It should still be linkable with Constraints, and there should be the possibility of enabling the collision again after some time. Is there a way to do this? The hard thing about it, is that the object should not collide with any other object, but all the other objects should collide with each other.

Share Improve this question edited Sep 21, 2015 at 18:35 d0n.key asked Sep 20, 2015 at 20:13 d0n.keyd0n.key 1,4834 gold badges20 silver badges43 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 9

You can use collision filters, like so:

const body = Matter.Bodies.rectangle(100, 100, 50, 50);
// turns off collisions
body.collisionFilter = {
  'group': -1,
  'category': 2,
  'mask': 0,
};

From the docs:

If the two bodies have the same non-zero value of collisionFilter.group, they will always collide if the value is positive, and they will never collide if the value is negative.

Using the category/mask rules, two bodies A and B collide if each includes the other's category in its mask, i.e. (categoryA & maskB) !== 0 and (categoryB & maskA) !== 0 are both true.

see

Matter.IBodyDefinition.isSensor

in order to disable physical collisions for the Body. The Body can still be used as a sensor for collisions.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1739473815a4128958.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信