World

英文原地址

Matter.World模块包含了许多用于创建和操作世界对象的方法。Matter.World是一个Matter.Composite聚合体,它包含了Matter.BodyMatter.Constraint和其他的Matter.CompositeMatter.World有一些额外属性,如gravitybounds。使用Matter.Composite模块中的函数来修改世界对象这一点很重要,不要直接修改它的属性。Matter.Composite中也有一些方法拥有别名,方便开发者阅读。

方法

Matter.World.add(world, object) → Composite

Composite.add的别名。

参数:

  • world World
  • object Object

返回值: Composite添加了物体后的世界聚合体。

Matter.World.addBody(world, body) → World

Composite.addBody的别名

参数:

  • world World
  • body Body

返回值: World添加了刚体后的世界聚合体。

Matter.World.addComposite(world, composite) → World

Composite.addComposite的别名。

参数:

  • world World
  • composite Composite

返回值: World添加了聚合体后的世界聚合体。

Matter.World.addConstraint(world, constraint) → World

Composite.addConstraint的别名。

参数:

  • world World
  • constraint Constraint

返回值: World添加了聚合体后的世界聚合体。

Matter.Composite.allBodies(composite) → Body[]

递归地返回传入复合体中的所有刚体,包括其子复合体中的所有刚体。

参数:

  • composite Composite

返回值: Body[] 所有刚体。

Matter.Composite.allComposites(composite) → Composite[]

递归地返回传入复合体中的所有复合体,包括其子复合体中的所有复合体。

参数:

  • composite Composite

返回值: Composite[] 所有复合体。

Matter.Composite.allConstraints(composite) → Constraint[]

递归地返回传入复合体中的所有约束条件,包括其子复合体中的所有约束条件。

参数:

  • composite Composite

返回值: Constraint[] 所有约束条件。

Matter.Composite.bounds(composite) → Bounds

返回所有复合体边界的并集。

参数:

  • composite Composite

返回值: Bounds 复合边界。

Matter.World.clear(world, keepStatic)

Composite.clear的别名

参数:

  • world World
  • keepStatic Boolean

Matter.World.create(options) → World

创建一个新的世界聚合体。options参数为一个对象,您传入的属性将会覆盖默认值。后面会介绍您可以设置的属性。

参数: options Object

返回值: World 一个新的世界

Matter.Composite.get(composite, id, type) → Object

递归搜索复合体,寻找与传入的typeid匹配的对象,如果找不到,则为空。

参数: composite Composite id Number type String

返回值: Object 寻找的对象,如果找到的话。

Matter.Composite.move(compositeA, objects, compositeB) → Composite

将给定对象从compositeA移动到compositeB(等于移除后再添加)。

参数: compositeA CompositeA objects Object[] compositeB CompositeB

返回值: Composite CompositeA

Matter.Composite.rebase(composite) → Composite

递归地为复合体中的所有对象分配新的id。

参数: composite Composite

返回值: Composite 返回复合体。

Matter.World.remove(world, object, [deep=false]) → Composite

Composite.remove的别名。

参数: world World object Object [deep=false] Boolean 可选

返回值:
Composite 移除了对象后的世界。

Matter.Composite.rotate(composite, rotation, point, [recursive=true])

围绕传入的point按照传入的角度旋转复合体中的所有子元素,没有角速度。

参数:
composite Composite rotation Number point Vector [recursive=true] Bool 可选

Matter.Composite.scale(composite, scaleX, scaleY, point, [recursive=true])

根据世界坐标点缩放复合体中的所有子元素,物理属性(质量、面积、轴、惯性)也包含在内。

参数: composite Composite scaleX Number scaleY Number point Vector [recursive=true] Bool 可选

Matter.Composite.setModified(composite, isModified, [updateParents=false], [updateChildren=false])

设置复合体的isModified标志。如果updateParentstrue,将对所有的父元素进行设置(默认:false)。如果updateChildrentrue,则将对所有子元素进行设置置(默认:false)。

参数: composite Composite isModified Boolean [updateParents=false] Boolean 可选 [updateChildren=false] Boolean 可选

Matter.Composite.translate(composite, translation, [recursive=true])

通过传入的相对于当前位置的矢量来转换复合体中的所有子元素,但并不赋予任何速度。

参数: composite Composite translation Vector [recursive=true] Bool 可选

属性

属性名 类型 默认值 描述
composite.bodies Body[] [] 复合体直接子元素的Body数组。若要添加或删除Body,您可以使用Composite.addComposite.remove方法,不要直接修改属性。如果您希望递归查找所有子代中的元素,请使用Composite.allBodies方法。
world.bounds Bounds { min: { x: -Infinity, y: -Infinity }, max: { x: Infinity, y: Infinity } } 定义世界边界的Bounds对象,用以碰撞检测。
composite.composites Composite[] [] 复合体的直接子元素的Composite数组。若要添加或删除复合体,您可以使用Composite.addComposite.remove方法,不要直接修改属性。如果您希望递归查找所有子代中的元素,请使用Composite.allComposites方法。
composite.constraints Constraint[] [] 复合体的直接子元素的Constraint数组。若要添加或删除复合体,您可以使用Composite.addComposite.remove方法,不要直接修改属性。如果您希望递归查找所有子代中的元素,请使用Composite.allConstraints方法。
world.gravity Object 应用到世界的重力。
world.gravity.scale Object 0.001 重力缩放因子。
world.gravity.x Object 0 重力的x分量
world.gravity.y Object 1 重力的y分量
composite.id Number 独一无二的数字标识符,由Composite.create通过Common.nextId生成。
composite.isModified Boolean false 表示在当期步骤中复合体是否已经发生修改的表示。大部分Matter.Composite方法会自动将本项设置为true,以通知引擎要处理的更改。如果需要手动更改,请使用Composite.setModified方法。
composite.label String "Composite" 于帮助用户识别和管理复合体的任意String名称。
composite.parent Composite null 该复合体的父Composite。由Matter.Composite方法自动管理。
composite.plugin 为存储插件专用属性而保留的对象。
composite.type String "Composite" 表示对象类型的字符串。

事件

以下事件均由Matter.World.create创建的对象派发,而后由使用Matter.Events.on订阅了事件的对象接收。

Events.on(engine, "afterAdd", callback)

Composite.add调用,对象添加后触发。

payload 类型 描述
event Object object
已添加的对象(可以是单个刚体、约束条件、复合体或以上的混合数组)
source
事件的源对象
name
事件名称

Events.on(composite, "afterRemove", callback)

Composite.remove调用,对象移除后触发。

payload 类型 描述
event Object object
已添加的对象(可以是单个刚体、约束条件、复合体或以上的混合数组)
source
事件的源对象
name
事件名称

Events.on(composite, "beforeAdd", callback)

Composite.add调用,对象添加前触发。

payload 类型 描述
event Object object
已添加的对象(可以是单个刚体、约束条件、复合体或以上的混合数组)
source
事件的源对象
name
事件名称

Events.on(composite, "beforeRemove", callback)

Composite.remove调用,对象移除前触发。

payload 类型 描述
event Object object
已添加的对象(可以是单个刚体、约束条件、复合体或以上的混合数组)
source
事件的源对象
name
事件名称