Render

英文原地址

Matter.Render模块是一个基于 HTML5 canvas 的渲染器,用于可视化Matter.Engine的实例。它可以用作开发和调试,也可以用于开发简单的游戏。拥有诸多包括线框、矢量在内绘图配置项,支持雪碧图和视口。

方法

Matter.Render.create([options]) → Render

创建一个新的渲染器。options参数为一个对象,用于设置覆盖默认值的属性。所有属性都有默认值,而且许多属性都是基于其他属性预计算的。可以设置的属性,请参见下面的options部分。

参数:
[options] Object optional

返回值:
Render 新的渲染器。

Matter.Render.endViewTransform(render)

重置渲染器上下文中的所有变形转换。

参数:
render Render

Matter.Render.lookAt(render, objects, [padding], [center=true])

调整传入对象边界周围的视口位置和尺寸。该objects必须具有以下属性中的一个:

  • object.bounds
  • object.position
  • object.minobject.max
  • object.xobject.y

参数:
render Render
objects Object[]
[padding] Vector 可选
[center=true] Bool 可选

Matter.Render.run(render)

基于requestAnimationFrame不断更新并渲染画布。

参数:
render Render

Matter.Render.setPixelRatio(render, pixelRatio)

设置渲染器的分辨率并更新画布。若要自动检测正确的分辨率,请将pixelRatio设置为'auto'

参数:
render Render
pixelRatio Number

Matter.Render.startViewTransform(render)

将基于render.bounds的视口变形转换应用于render上下文。

参数:
render Render

Matter.Render.stop(render)

通过取消动画帧的请求事件循环,停止执行传入renderRender.run事件。

参数:
render Render

Matter.Render.world(render)

渲染传入engineMatter.World对象。这是所有渲染的入口点,应该在每次发生场景改变时调用。

参数:
render Render

属性

以下属性为Matter.Render.create创建对象时通过options参数传入的配置项。

属性 类型 默认值 描述
render.bounds Bounds 指定绘图视图区域的Bounds对象。渲染过程中会自动转换和缩放以适应画布尺寸(render.options.widthrender.options.height)。这就让创建可以围绕场景进行平移和缩放的视图成为可能。此外,您还必须将render.options.hasBounds设置为true从而启用边界渲染。
render.canvas HTMLCanvasElement null 执行渲染的画布元素。如果没有指定,则会在渲染时根据render.element创建。
render.context CanvasRenderingContext2D render.canvas元素的2d渲染上下文。
render.controller Render Matter.Render模块的反向引用。
render.element HTMLElement null 对要插入的画布元素的引用(如果没有指定render.canvas的话)
render.engine Engine 对要使用的Matter.Engine实例的引用。
render.options 渲染器的配置项
render.options.hasBounds Boolean false 是否在渲染时使用render.bounds
render.options.height Number 600 创建的render.canvas的高度,以像素计。
render.options.width Number 800 创建的render.canvas的宽度,以像素计。
render.textures 雪碧图文理缓存。

事件

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

Events.on(render, "afterRender", callback)

渲染后触发。

payload 类型 描述
event Object timestamp Number
事件的engine.timing.timestamp

source
事件的源对象

name
事件名称

Events.on(render, "beforeRender", callback)

渲染前触发。

payload 类型 描述
event Object timestamp Number
事件的engine.timing.timestamp

source
事件的源对象

name
事件名称