## Matter.World > 一个Matter.World相当于一个复合物体,物体、约束、复合物体的聚合体。Matter.World 有些额外的属性,包括重力边界。在Matter.Composite 模块里修改世界的属性优于直接修改世界的属性。Matter.World也有一些方法(在Matter.Composite里是简写的)。 ##Methods `Matter.Composite.add(composite, object)(继承自Composite)` >普通的新增函数。增加物体约束或者复合材料到给定的复合材料上。会触发复合材料的beforeAdd afterAdd 。 `Matter.World.addBody(world, body) ` >Composite.addBody的别称 `Matter.World.addComposite(world, composite) → ` >Composite.add的别称 `Matter.World.addConstraint(world, constraint) ` >Composite.addConstraint的别称 `Matter.Composite.allBodies(composite)` >返回给定复合材料内所有的物体和他们的子孙,递归地。 `Matter.Composite.allConstraints(composite) ` >返回给定复合材料内所有的约束和他们子孙的约束,递归地。 `Matter.World.clear(world, keepStatic) ` >Composite.clear的别称 `Matter.World.create(options) ` >创建一个新的世界复合材料。 `Matter.Composite.get(composite, id, type) ` >递归的寻找匹配type和id的复合材料 `Matter.Composite.move(compositeA, objects, compositeB)` >从compositeA移动指定的对象到compositeB `Matter.Composite.rebase(composite) ` >递归的为复合材料里所有的对象重新分配身份(标识) `Matter.Composite.remove(composite, object, [deep=false])` >普通的移除函数,移除复合材料里指定的物体或者复合材料,可选是否深度删除。在composite上触发beforeRemove 和afterRemove 事件 `Matter.Composite.rotate` >以指定的点为中心旋转复核人材料,但是不产生任何角速度 `Matter.Composite.scale(composite, scaleX, scaleY, point, [recursive=true])` >从给定的坐标点开始缩放复合材料,并更新响应的物理属性 `Matter.Composite.setModified(composite, isModified, [updateParents=false], [updateChildren=false])` >设置复合材料是否可以被修改。updateParents=true父元素也会被设置,updateChildren=true所有的子元素也会被设置 `Matter.Composite.translate(composite, translation, [recursive=true])` >基于当前的点,沿着指定的向量移动复合材料,不产生任何速度 ##Properties `Composite.bodies` >复合材料所有直属物体的数组。如果要增加或者移除,请使用Composite.add and Composite.remove方法而不是直接修改这个属性。如果你希望递归地得到所有的物体,请使用Composite.allBodies 方法。 `World.bounds` >定义了在模拟世界里为碰撞检测划出边界的边界对象 `Composite.composites` >复合材料所有直属复合材料的数组。如果要增加或者移除,请使用Composite.add and Composite.remove方法而不是直接修改这个属性。如果你希望递归地得到所有的复合材料,请使用Composite.allComposites 方法。 `Composite.constraints` >复合材料所有直属约束的数组。如果要增加或者移除,请使用Composite.add and Composite.remove方法而不是直接修改这个属性。如果你希望递归地得到所有的约束,请使用Composite.allConstraints 方法 `World.gravity` >模拟世界要应用的重力 `World.gravity.scale` >重力缩放系数 `World.gravity.x` >x轴的重力 `World.gravity.y` >y轴的重力 `Composite.id` >一个在Composite.create 后通过Common.nextId生成的独一无二的识别数字(整数) `Composite.isModified` >在当前帧该复合材料是否被修改过的标识。大部门Matter.Composite方法会自动设置这个值为true以通知引擎将要被处理的改变。如果你要手动改变它,请使用Composite.setModified 方法 `Composite.label` >帮助使用者标识和管理复合材料的任意字符串 `Composite.parent` >复合材料的父级复合材料。会被Matter.Composite方法自动管理 `Composite.type` >一个表示对象类型的字符串 ##Events `Events.on(Composite, "afterAdd", callback) ` >在调用 Composite.add 时,对象被创建之后触发 `Events.on(Composite, "afterRemove", callback)` >在调用Composite.remove时,对象被移除后触发 `Events.on(Composite, "beforeAdd", callback) ` >在调用 Composite.add 时,对象被创建之前触发 `Events.on(Composite, "beforeRemove", callback) ` >在调用Composite.remove时,对象被移除之前触发