Matter.js之Bodies刚体工厂模块
本文最后更新于:1 年前
Matter.Bodies模块包含创建常见配置的刚体模型的工厂方法。(例如,矩形,圆形和其他多边形)。
方法
circle
Matter.Bodies.circle(x, y, radius, [options], [maxSides]) → Body
创建一个新的圆刚体模型,其中包含一个圆形质体。通过给定的选项参数对象options,您可以覆盖默认值。有关详细信息,请参阅Matter.Body模块的属性部分。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
x | number | 圆心的x坐标 | |
y | number | 圆心的y坐标 | |
radius | number | 圆的半径 | |
options | object | 刚体选项 | |
maxSides | number | 最大边数 |
返回值
返回一个点数组,其中每个点是一个向量。
名称 | 类型 | 说明 |
---|---|---|
Body | Body |
fromVertices
Matter.Bodies.fromVertices(x, y, vertexSets, [options], [flagInternal=false], [removeCollinear=0.01], [minimumArea=10], [removeDuplicatePoints=0.01]) → Body
基于顶点集创建一个复合体的实用工具。
注意:要选择自动解决凹面积的复合体,必须先安装poly-decomp包,并且查看提供的Common.setDecomp方法,否则将使用每个顶点集的凸包。
生成的顶点将重新定位关于质心,并且偏移,以便body.position对应于此点。
如果需要的话,可以通过从原始输入边界中减去body.bounds来找到偏移。要移动质心,请参阅Body.setCentre。
请注意,自动解决凹面积的复合体结果不是总是最佳的。为了获得最佳结果,请首先尽可能简化输入顶点。默认情况下,此方法将应用一些额外简化来帮助。
一些输出也可能需要在最后处理以保持其容错性。特别是,一些部分可能需要重叠以避免碰撞间隙。薄的部分和锐利的点应该避免或删除,如果可能的话。
选项参数对象指定要覆盖默认值的任何Matter.Body属性。
请参见Matter.Body模块的属性部分以获取更多信息。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
x | number | x坐标 | |
y | number | y坐标 | |
vertexSets | array | 顶点集 | |
options | object | 刚体选项 | |
flagInternal | boolean | false | 是否为内部顶点 |
removeCollinear | number | 0.01 | 删除具有相同值的顶点 |
minimumArea | number | 10 | 删除小于此面积的复合体 |
removeDuplicatePoints | number | 0.01 | 删除重复点 |
返回值
返回一个点数组,其中每个点是一个向量。
名称 | 类型 | 说明 |
---|---|---|
Body | Body |
polygon
Matter.Bodies.polygon(x, y, sides, radius, [options]) → Body
创建一个新的刚体模型,其中包含给定边数的常规多边形舱体。选项参数是一个对象,它指定任何要覆盖默认值的任何属性。请参阅Matter.Body模块的属性部分以获取更多信息。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
x | number | x坐标 | |
y | number | y坐标 | |
sides | number | 边数 | |
radius | number | 半径 | |
options | object | 刚体选项 |
返回值
返回一个点数组,其中每个点是一个向量。
名称 | 类型 | 说明 |
---|---|---|
Body | Body |
rectangle
Matter.Bodies.rectangle(x, y, width, height, [options]) → Body
创建一个新的矩形刚体模型,其中包含给定宽度和高度的矩形舱体。选项参数是一个对象,它指定任何要覆盖默认值的任何属性。请参阅Matter.Body模块的属性部分以获取更多信息。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
x | number | x坐标 | |
y | number | y坐标 | |
width | number | 宽度 | |
height | number | 高度 | |
options | object | 刚体选项 |
返回值
返回一个点数组,其中每个点是一个向量。
名称 | 类型 | 说明 |
---|---|---|
Body | Body |
trapezoid
Matter.Bodies.trapezoid(x, y, width, height, slope, [options]) → Body
创建一个新的梯形刚体模型,其中包含给定宽度和高度的梯形舱体。选项参数是一个对象,它指定任何要覆盖默认值的任何属性。请参阅Matter.Body模块的属性部分以获取更多信息。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
x | number | x坐标 | |
y | number | y坐标 | |
width | number | 宽度 | |
height | number | 高度 | |
slope | number | 坡度 | |
options | object | 刚体选项 |
返回值
返回一个点数组,其中每个点是一个向量。
名称 | 类型 | 说明 |
---|---|---|
Body | Body |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!