Matter.js设置碰撞规则
  hFjB0Jv03ZZZ 2023年11月02日 47 0

Matter是一套不错的js物理引擎,LayaAir内置后,变得更加好用

Matter相互碰撞提供了collisionFilter属性,支持三种属性,分别是

group category mask

使用三种属性,就能设计出很复杂的碰撞关系

其中规则如下: 第一种情况

在两个group相等的前提下 如果任意group大于零,则两者始终碰撞,比如大家都是1,这大家相互直接始终碰撞 如果任意group小于0,比如大家都是-1,则大家永远也不碰撞 除上述两种情况,则根据category和mask进行判定

第二张情况

在两个group不相等的前提下 根据category和mask进行判定

根据category和mask判定

category,mask判定规则 category代表一个碰撞分类,其值可为1,2,4,8...直到 2^31,每个刚体设置一个值 mask为碰撞集合(category集合),是category相与的结果值,比如接受2,4类型,其值为6 a和b碰撞情况是 a的mask必须包含b的category,同时b的mask也必须包含a的category,即 (a.category & b.mask) !== 0 && (b.category & a.mask) !== 0

总结如下: 简单的碰撞关系,直接设置group即可 复杂的碰撞关系,可以通过设置category和和mask值进行搭配,做出很高级的碰撞关系

附带我做的小物理游戏

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

hFjB0Jv03ZZZ