当前位置: 首页 > Web前端 > HTML5

Matter.js碰撞设置规则

时间:2023-04-05 13:08:10 HTML5

Matter是一个不错的js物理引擎。内置LayaAir后,它变得更加好用。Matter提供了相互碰撞的collisionFilter属性,支持三个属性。Groupcategorymask使用三个属性。可以设计出非常复杂的碰撞关系。规则如下:第一种情况,在两组相等的前提下,如果任意一个组大于零,则两者总是会碰撞。例如,如果每个人都是1,他们总是会直接碰撞在一起。如果任何一个组都小于0。例如,如果每个人都是-1,那么每个人都不会发生碰撞。除了以上两种情况外,还要根据类别和掩码进行判断。第二种情况,在两组不相等的前提下,根据类别和掩码进行判断。Category和mask确定类别,mask确定规则category代表一个碰撞分类,它的值可以是1,2,4,8...直到2^31,每个刚体设置一个值mask作为碰撞集(categoryset),是类别AND的结果值,例如接受2、4类型,其值为6a和b碰撞。a的掩码必须包含b的类别,b的掩码也必须包含a的类别,即(a.category&b.mask)!==0&&(b.category&a.mask)!==0总结如下:简单的碰撞关系,直接设置group到复杂的碰撞关系,可以通过设置category和mask值来匹配,用我做的一个物理小游戏做一个很高级的碰撞关系