Composites
Matter.Composites模块包含了用于创建具有常用配置(如堆栈和链)复合体的工厂方法。
方法
Matter.Composites.car(xx, yy, width, height, wheelSize) → Composite
使用简单的车型(car)物体和限制条件创建复合体。
参数:
xx Number
yy Number
width Number
height Number
wheelSize Number
返回值:
Composite 复合体车身。
Matter.Composites.chain(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) → Composite
使用约束条件将传入的复合体串连在一起形成链条。
参数:
composite Composite
xOffsetA Number
yOffsetA Number
xOffsetB Number
yOffsetB Number
options Object
返回值:
Composite 带约束条件的复合体链条。
Matter.Composites.mesh(composite, columns, rows, crossBrace, options) → Composite
将复合体中的刚体以某种限制条件组合成网状结构,可选是否带有交叉支架。
参数:
composite Composite
columns Number
rows Number
crossBrace Boolean
options Object
返回值:
Composite 带有约束条件的网状结构复合体。
Matter.Composites.newtonsCradle(xx, yy, number, size, length) → Composite
将复合体中的刚体以某种限制条件组成牛顿摆(Newton's Cradle)。
参数:
xx Number
yy Number
number Number
size Number
length Number
返回值:
Composite 牛顿摆复合体。
Matter.Composites.pyramid(xx, yy, columns, rows, columnGap, rowGap, callback) → Composite
创建一个新的复合体,它排成金字塔形状。该函数通过物体的边界来防止重叠。
参数:
xx Number
yy Number
columns Number
rows Number
columnGap Number
rowGap Number
callback Function
返回值:
Composite 包含了在回调中创建的对象的新复合体。
Matter.Composites.softBody(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) → Composite
创建一个简单的柔体。
参数:
xx Number
yy Number
columns Number
rows Number
columnGap Number
rowGap Number
crossBrace Boolean
particleRadius Number
particleOptions Object
constraintOptions Object
返回值:
Composite 新的复合柔体。
Matter.Composites.stack(xx, yy, columns, rows, columnGap, rowGap, callback) → Composite
创建一个新的复合体,在创建的回调函数中将其包含的刚体排成堆的形状。该函数通过物体的边界来防止重叠。
参数:
xx Number
yy Number
columns Number
rows Number
columnGap Number
rowGap Number
callback Function
返回值:
Composite 包含了在回调中创建的对象的新复合体。
Matter.Constraint
Matter.Constraint模块包含了创建和操作约束条件的方法。约束条件用于指定两个物体之间(或者一个物体和世界固定坐标)必须保持固定的距离。约束条件既可以是刚性的也可以是弹性的。
方法
Matter.Constraint.create(options) → Constraint
创建一个新的约束条件。所有属性都有默认值,而且许多属性都是基于其他属性预先计算的。比方说为了模拟一个可以转动的关节,可以将长度设置为0并且设置一个较高的stiffness值(例如 0.7以上)。如果约束条件不稳定,可以尝试降低stiffness值和/或增加engine.constraintIterations。对于复合体,约束条件必须应用于父级(而不是它的某个子元素部分)。options配置项可以设置哪些属性,请参见后文。
参数:
options Object
返回值:
Constraint constraint
属性
下面的属性均是在Matter.Constraint.create创建时就设置好,且可以通过传递的options参数进行覆盖。
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| constraint.bodyA | Body | null | 施加约束条件的第一个可能的物体。 |
| constraint.bodyB | Body | null | 施加约束条件的第二个可能的物体。 |
| constraint.damping | Number | 0 | 表示约束阻尼的数字,即基于物体的速度施加到每个物体上从而限制振动量的阻力。只有当约束条件的刚性度(stiffness)也很低时,阻尼才会明显地表示出来。该值为0.1时表示约束阻尼较重,从而使震动不明显甚至没有震动。若为0则表示没有阻尼。 |
| constraint.id | Number | 独一无二的数字标识符,由Composite.create通过Common.nextId生成。 | |
| constraint.label | String | "Constraint" | 于帮助用户识别和管理复合体的任意String名称。 |
| constraint.plugin | 为存储插件专用属性而保留的对象。 | ||
| constraint.pointA | Vector | { x: 0, y: 0 } | 如果定义了约束条件,那么它就是表示从constraint.bodyA中开始的约束偏移量,否则的话为其在世界坐标中的位置。 |
| constraint.pointB | Vector | { x: 0, y: 0 } | 如果定义了约束条件,那么它就是表示从constraint.bodyB中开始的约束偏移量,否则的话为其在世界坐标中的位置。 |
| constraint.render | Object | 定义Matter.Render模块使用的渲染属性的对象。 | |
| constraint.render.anchors | Boolean | true | 表示是否渲染约束锚点。 |
| constraint.render.lineWidth | Number | 2 | 表示渲染约束外框时的线宽。值为0时表示不渲染。 |
| constraint.render.strokeStyle | String | 随机颜色 | 在渲染时使用的外框样式。这点和canvas相一致,因此也接受CSS样式字符串。 |
| constraint.render.type | String | 'line' | 定义约束渲染类型的字符串。可能的值为"line"、"pin"、"spring"。若没有在配置项中设置,将自动选择合适的渲染类型。 |
| constraint.render.visible | Boolean | true | 表示是否渲染约束条件。 |
| constraint.stiffness | Number | 1 | 指定约束条件刚性程度的数字,即它返回到静约束长度的速率。值为1以为着约束非常严格。值为0.2差不多类似于软弹簧。 |
| constraint.type | String | constraint" | 表示对象类型的字符串。 |
← Composite Constraint →