Matter.Engine 是matter 的 物理引擎对象 , 可以用来操作 修改 物理引擎, 本文 记录了
Engine 对象常用的几种方法 和属性
一. Engine 对象的常用方法
let Engine = Matter.Engine (将Matter 引擎对象赋值给 Engine)
1.Engine.create([options]) 创建引擎对象 参数options非必传 , 用来设置引擎基本属性
let engine = Engine.create() ;
2.Engine.run(engine) 运行引擎对象
3.Engine.clear(engine) 清除引擎对象
二. //options 可传入参数JSON包含的属性
options{
broadphase : ; Engine.create (应该一个引擎实例 , 默认为一个 Engine.create对象)
constraintIterations: ;number (整数,默认为 2 通常很充足, 可以理解为帧数 针对约束迭代)
enableSleeping : ;boolean (默认为 false 是否可以通过 Matter.Sleeping模块休眠)
plugin : ; (用于存储特定插件的属性对象)
positionIterations : ; number (整数, 默认为6 , 可以理解为帧数 针对于位置迭代)
timing : (定时系统包含的属性){
timeScale : ;number指定所有实体的全局缩放时间因子, (0 为冻结时间 , 值为 0.1 慢动作效果,1.2 位加速)
timestamp : ;number 指定当前模拟时间(毫秒)0, 按照Engine.update给定的 delta 参数递增(与Engine.update方法对应)
}
velocityIterations: ; number 指定执行每次更新的迭代次数, 值越高,模拟质量越高, 帧
world: ; Matter.World 一个 World 实例 即 世界/舞台 包含所有的 实例模拟体,约束等
}
三.可以绑定的事件(生命周期)
1.Events.on(engine( Engine.created对象; 引擎实例) , "afterUpdate"(String ; 事件名),function(){ } ( callback; 回调函数) )
引擎 更新,和碰撞发生 后 触发
2.Events.on(engine, "beforeUpdate",function(){ })
引擎 更新,和碰撞发生 前 触发
3.Events.on(engine, "collisonActive",function(){ })
引擎更新后触发 , 提供当前正在放生碰撞的所有实体列表
4.Events.on(engine, "collisonEnd",function(){ })
引擎更新后触发 , 提供当前正在 结束碰撞的所有实体列表
5.Events.on(engine, "collisonStart",function(){ })
引擎更新后触发 , 提供当前正在 开始碰撞的所有实体列表
最后附上官方文档 ( 仍有一些参数 未能明白用法 , 后期会继续改进更新)
Events.on(engine, "collisionEnd
", callback)
Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)