Matter.js之Engine
本文最后更新于:1 年前
Matter.Engine模块包含了创建和操作引擎的方法。引擎是管理更新模拟世界的一个控制器。
请参阅Matter.Runner以获得可选的游戏循环工具。
方法
create
Matter.Engine.create([options]) → Engine
创建一个新的引擎。选项参数是一个对象,它指定任何你想覆盖默认值的属性。所有属性都有默认值,并且大多数都是根据其他属性自动计算的。请参阅下面的属性部分以了解您可以通过选项对象传递的所有属性。
参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
options | Object | {} | 可选的选项对象 |
以下是options的默认值
1 |
|
返回
返回一个新的引擎对象。
名称 | 类型 | 说明 |
---|---|---|
engine | Engine | 引擎对象 |
clear
Matter.Engine.clear(engine)
清除引擎的pairs和detector。
参数
名称 | 类型 |
---|---|
engine | Engine |
merge
Matter.Engine.merge(engineA, engineB)
合并两个引擎,保留engineA的配置,但是替换engineB的world。
参数
名称 | 类型 |
---|---|
engineA | Engine |
engineB | Engine |
update
Matter.Engine.update(engine, [delta=16.666], [correction=1])
模拟时间前进delta毫秒。correction参数是一个可选的数字,它指定要应用于更新的时间纠正因子。这可以帮助改善模拟在delta在更新中变化的情况下的精确性。correction的值定义为delta / lastDelta,即delta / lastDelta的百分比改变。因此值总是1(无纠正),当delta常数(或者当不需要纠正时,这是默认值)。请参阅Time Corrected Verlet文献以了解更多信息。(这个文献正在找)
触发beforeUpdate和afterUpdate事件。触发collisionStart,collisionActive和collisionEnd事件。
参数
名称 | 类型 | 默认值 |
---|---|---|
engine | Engine | |
delta | Number | 16.666 |
correction | Number | 1 |
run
Matter.Engine.run(engine) deprecated
弃用:使用*Matter.Runner.run(engine)*代替
Runner.run的弃用了的别名,使用Matter.Runner.run(engine)代替,并且参阅Matter.Runner以获得更多信息。
参数
名称 | 类型 |
---|---|
engine | Engine |
属性/选项
下面的属性/选项由Matter.Engine.create创建的对象指定,并且可以传递给它作为选项。
constraintIterations
engine.constraintIterations Number
一个整数,它指定每次更新迭代的约束迭代数。值越高,模拟的质量越好,但是性能会受到影响。默认值为2,通常是足够的。
默认值: 2
detector
engine.detector Detector
一个Matter.Detector实例.
默认值: 一个Matter.Detector实例.
enableSleeping
engine.enableSleeping Boolean
指定是否允许Matter.Sleeping模块中的睡眠的标志。睡眠可以提高稳定性和性能,但是往往会影响精确度。
默认值: false
gravity
engine.gravity Object
对于engine.world中的所有bodies,应用重力。
gravity.scale
engine.gravity.scale Object
重力缩放因子。
默认值: 0.001
gravity.x
engine.gravity.x Object
重力x分量。
默认值: 0
gravity.y
engine.gravity.y Object
重力y分量。
默认值: 1
plugin
engine.plugin
用于存储特定插件的属性的一个对象。
positionIterations
engine.positionIterations Number
一个整数,它指定每次更新迭代的位置迭代数。值越高,模拟的质量越好,但是性能会受到影响。
默认值: 6
timing
engine.timing Object
An Object containing properties regarding the timing systems of the engine.
一个包含了与时间系统相关的属性的对象
timing.lastDelta
engine.timing.lastDelta Number
表示在上次引擎更新中使用的delta值的一个整数。
默认值: 0
timing.lastElapsed
engine.timing.lastElapsed Number
一个整数,表示上次引擎更新中所用的总执行时间,以毫秒为单位。它是在上次引擎更新[Engine.update]开始,到它结束时所用的时间。
这个值也包括了所有事件处理程序的执行时间。
默认值: 0
timing.timeScale
engine.timing.timeScale Number
一个整数,它指定了所有物体的全局时间缩放因子。值为0将会冻结模拟。值为0.1将会产生一个慢动作效果。值为1.2将会产生一个加速效果。
默认值: 1
timing.timestamp
engine.timing.timestamp Number
一个整数,它指定了当前模拟时间,以毫秒为单位。它在每次引擎更新[Engine.update]时,都会增加给定的delta参数。
默认值: 0
velocityIterations
engine.velocityIterations Number
一个整数,它指定了每次更新执行的速度迭代数。值越高,模拟的质量越好,但是性能会受到影响。
默认值: 4
world
engine.world Composite
通过引擎模拟的所有物体,约束和其他组合的根Matter.Composite实例。
默认值: 一个Matter.Composite实例
broadphase
engine.broadphase Grid [deprecated]
弃用: 被engine.detector
替代。
现在是engine.grid的别名。
默认值: 一个Matter.Grid实例
grid
engine.grid Grid [deprecated]
弃用: 被engine.detector
替代。
一个Matter.Grid实例。
默认值: 一个Matter.Grid实例
事件
下面是Matter.Engine.create创建的对象发出的事件,并且接收使用Matter.Events.on订阅的对象接收。
afterUpdate
Events.on(engine, “afterUpdate”, callback)
触发在引擎更新和所有碰撞事件之后。
回调参数[callback]
名称 | 类型 |
---|---|
event | Object |
event
一个事件对象
名称 | 类型 | 说明 |
---|---|---|
timestamp | Number | 事件触发的时间戳 |
source | Object | 事件源对象 |
name | String | 事件的名称 |
beforeUpdate
Events.on(engine, “beforeUpdate”, callback)
触发在引擎更新之前。
回调参数[callback]
名称 | 类型 |
---|---|
event | Object |
event
一个事件对象
名称 | 类型 | 说明 |
---|---|---|
timestamp | Number | 事件触发的时间戳 |
source | Object | 事件源对象 |
name | String | 事件的名称 |
collisionActive
Events.on(engine, “collisionActive”, callback)
触发在引擎更新之后,提供一个当前tick中所有碰撞的对(如果有)的列表。
回调参数[callback]
名称 | 类型 |
---|---|
event | Object |
event
一个事件对象
名称 | 类型 | 说明 |
---|---|---|
pairs | Pair[] | 受影响对的列表 |
timestamp | Number | 事件触发的时间戳 |
source | Object | 事件源对象 |
name | String | 事件的名称 |
collisionEnd
Events.on(engine, “collisionEnd”, callback)
触发在引擎更新之后,提供一个当前tick中所有碰撞结束的对(如果有)的列表。
回调参数[callback]
名称 | 类型 |
---|---|
event | Object |
event
一个事件对象
名称 | 类型 | 说明 |
---|---|---|
pairs | Pair[] | 受影响对的列表 |
timestamp | Number | 事件触发的时间戳 |
source | Object | 事件源对象 |
name | String | 事件的名称 |
collisionStart
Events.on(engine, “collisionStart”, callback)
触发在引擎更新之后,提供一个当前tick中所有碰撞开始的对(如果有)的列表。
回调参数[callback]
名称 | 类型 |
---|---|
event | Object |
event
一个事件对象
名称 | 类型 | 说明 |
---|---|---|
pairs | Pair[] | 受影响对的列表 |
timestamp | Number | 事件触发的时间戳 |
source | Object | 事件源对象 |
name | String | 事件的名称 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!