Runner
Matter.Runner
模块是可选的工具模块,提供了游戏循环,能够帮助您在浏览器端处理不当更新的Matter.Engine
。主要用于开发和调试,也可用来制作简单的游戏。如果您使用的自己的游戏循环,则不需要Matter.Runner
模块,只需要在您的循环中调用EngineUpdate(engine, delta)
即可。
方法
Matter.Runner.create(options)
创建新的Runner
。options
参数是一个对象,用于传入要覆盖的默认值属性。
参数:
options
Object
Matter.Runner.run(engine)
通过在requestAnimationFrame
事件中调用Runner.tick
来执行Matter.Engine
的每一帧。
参数:
engine
Engine
Matter.Runner.start(runner, engine)
Runner.run
的别名。
参数:
runner
Runner
engine
Engine
Matter.Runner.stop(runner)
通过取消动画帧请求事件循环来结束传入runner
上Runner.run
的执行。如果您只希望暂停引擎,请参阅engine.enabled
。
参数:
runner
Runner
Matter.Runner.tick(runner, engine, time)
更新引擎和渲染器每一步('tick')的有序循环工具。具有图像平滑、时间校正和固定或动态授时功能。会触发引擎上的beofreTick
、tick
和afterTick
事件。如果您使用的是自己的循环,可以考虑只使用Engine.update(engine, delta)
。
参数:
runner
Runner
engine
Engine
time
Number
属性
以下属性为Matter.Runner.create
创建对象时通过options
参数传入的配置项。
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
runner.delta | Number | 1000 / 60 | 表示两次更新之间的步长(以毫秒为单位)。如果engine.timing.isFixed 设置为true 。则delta 会固定。如果为false , 那么delta 会动态变化以保持正确的拟真速度。 |
runner.enabled | Boolean | false | 表示程序是否正在运行 |
runner.isFixed | Boolean | false | 表示运行程序是否应该使用固定的时间步长(否则为弹性值)。如果步长是固定的,那么拟真速度将根据帧率进行改变(而行为是确定的)。如果时间步长是弹性的,那么拟真速度则为恒定(大约是这样,但以确定性为代价) |
事件
以下事件均由Matter.Runner.create
创建的对象派发,而后由使用Matter.Events.on
订阅了事件的对象接收。
Events.on(runner, "afterTick", callback)
在每一帧结束后触发,在引擎更新和渲染后。
payload | 类型 | 描述 |
---|---|---|
event | Object | timestamp Number 事件的 engine.timing.timestamp source 事件的源对象 name 事件名称 |
Events.on(runner, "afterUpdate", callback)
更新后触发。
payload | 类型 | 描述 |
---|---|---|
event | Object | timestamp Number 事件的 engine.timing.timestamp source 事件的源对象 name 事件名称 |
Events.on(runner, "beforeTick", callback)
在每一帧开始时触发,在对引擎或计时进行任何更新之前。
payload | 类型 | 描述 |
---|---|---|
event | Object | timestamp Number 事件的 engine.timing.timestamp source 事件的源对象 name 事件名称 |
Events.on(runner, "beforeUpdate", callback)
更新前触发。
payload | 类型 | 描述 |
---|---|---|
event | Object | timestamp Number 事件的 engine.timing.timestamp source 事件的源对象 name 事件名称 |
Events.on(runner, "tick", callback)
在引擎时间更新前触发,仅处于更新前。
payload | 类型 | 描述 |
---|---|---|
event | Object | timestamp Number 事件的 engine.timing.timestamp source 事件的源对象 name 事件名称 |