Phaser API Documentation

  Version: 
Filter

The Matter World class is responsible for managing one single instance of a Matter Physics World for Phaser.

Access this via this.matter.world from within a Scene.

This class creates a Matter JS World Composite along with the Matter JS Engine during instantiation. It also handles delta timing, bounds, body and constraint creation and debug drawing.

If you wish to access the Matter JS World object directly, see the localWorld property. If you wish to access the Matter Engine directly, see the engine property.

This class is an Event Emitter and will proxy all Matter JS events, as they are received.

Constructor:

new World(scene, config)

Parameters:

name type description
scene Phaser.Scene

The Scene to which this Matter World instance belongs.

config Phaser.Types.Physics.Matter.MatterWorldConfig

The Matter World configuration object.

Since: 3.0.0

Extends


Members

autoUpdate: boolean
Focus
Focus

Description:

Automatically call Engine.update every time the game steps. If you disable this then you are responsible for calling World.step directly from your game. If you call set60Hz or set30Hz then autoUpdate is reset to true.

Type:
boolean
Default: true
Since: 3.4.0
Focus
Focus
correction: number
Focus
Focus

Description:

The correction argument is an optional Number that specifies the time correction factor to apply to the update. This can help improve the accuracy of the simulation in cases where delta is changing between updates. The value of correction is defined as delta / lastDelta, i.e. the percentage change of delta over the last step. Therefore the value is always 1 (no correction) when delta is constant (or when no correction is desired, which is the default). See the paper on Time Corrected Verlet for more information.

Type:
number
Default: 1
Since: 3.4.0
Focus
Focus

Description:

The debug configuration object.

The values stored in this object are read from the Matter World Config debug property.

When a new Body or Constraint is added to the World, they are given the values stored in this object, unless they have their own render object set that will override them.

Note that while you can modify the values of properties in this object at run-time, it will not change any of the Matter objects already added. It will only impact objects newly added to the world, or one that is removed and then re-added at a later time.

Type:
Since: 3.22.0
Focus
Focus

Description:

An instance of the Graphics object the debug bodies are drawn to, if enabled.

Type:
Since: 3.0.0
Focus
Focus
drawDebug: boolean
Focus
Focus

Description:

A flag that controls if the debug graphics will be drawn to or not.

Type:
boolean
Default: false
Since: 3.0.0
Focus
Focus
enabled: boolean
Focus
Focus

Description:

A flag that toggles if the world is enabled or not.

Type:
boolean
Default: true
Since: 3.0.0
Focus
Focus
engine: MatterJS.Engine
Focus
Focus

Description:

An instance of the MatterJS Engine.

Type:
MatterJS.Engine
Since: 3.0.0
Focus
Focus
getDelta: function
Focus
Focus

Description:

This function is called every time the core game loop steps, which is bound to the Request Animation Frame frequency unless otherwise modified.

The function is passed two values: time and delta, both of which come from the game step values.

It must return a number. This number is used as the delta value passed to Matter.Engine.update.

You can override this function with your own to define your own timestep.

If you need to update the Engine multiple times in a single game step then call World.update as many times as required. Each call will trigger the getDelta function. If you wish to have full control over when the Engine updates then see the property autoUpdate.

You can also adjust the number of iterations that Engine.update performs. Use the Scene Matter Physics config object to set the following properties:

positionIterations (defaults to 6) velocityIterations (defaults to 4) constraintIterations (defaults to 2)

Adjusting these values can help performance in certain situations, depending on the physics requirements of your game.

Type:
function
Since: 3.4.0
Focus
Focus
localWorld: MatterJS.World
Focus
Focus

Description:

A World composite object that will contain all simulated bodies and constraints.

Type:
MatterJS.World
Since: 3.0.0
Focus
Focus

Description:

The Matter JS Runner Configuration object.

This object is populated via the Matter Configuration object's runner property and is updated constantly during the game step.

Type:
Since: 3.22.0
Focus
Focus
scene: Phaser.Scene
Focus
Focus

Description:

The Scene to which this Matter World instance belongs.

Type:
Since: 3.0.0
Focus
Focus
walls: object
Focus
Focus

Description:

An object containing the 4 wall bodies that bound the physics world.

Type:
object
Since: 3.0.0
Focus
Focus

Methods

add(object)
Focus
Focus

Description:

Adds a Matter JS object, or array of objects, to the world.

The objects should be valid Matter JS entities, such as a Body, Composite or Constraint.

Triggers beforeAdd and afterAdd events.

Parameters:

name type description
object object | Array.<object>

Can be single object, or an array, and can be a body, composite or constraint.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
addListener(event, fn, [context])
Focus
Focus

Description:

Add a listener for a given event.

Parameters:

name type arguments Default description
event string | symbol

The event name.

fn function

The listener function.

context * <optional> this

The context to invoke the listener with.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#addListener
Since: 3.0.0
Focus
Focus
convertTilemapLayer(tilemapLayer, [options])
Focus
Focus

Description:

Adds MatterTileBody instances for all the colliding tiles within the given tilemap layer.

Set the appropriate tiles in your layer to collide before calling this method!

Parameters:

name type arguments description
tilemapLayer Phaser.Tilemaps.TilemapLayer

An array of tiles.

options object <optional>

Options to be passed to the MatterTileBody constructor. {@see Phaser.Physics.Matter.TileBody}

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
convertTiles(tiles, [options])
Focus
Focus

Description:

Adds MatterTileBody instances for the given tiles. This adds bodies regardless of whether the tiles are set to collide or not.

Parameters:

name type arguments description
tiles Array.<Phaser.Tilemaps.Tile>

An array of tiles.

options object <optional>

Options to be passed to the MatterTileBody constructor. {@see Phaser.Physics.Matter.TileBody}

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
create(x, y, width, height, options)
Focus
Focus

Description:

Creates a rectangle Matter body and adds it to the world.

Parameters:

name type description
x number

The horizontal position of the body in the world.

y number

The vertical position of the body in the world.

width number

The width of the body.

height number

The height of the body.

options object

Optional Matter configuration object.

Returns:
Description:

The Matter.js body that was created.

Type:
  • MatterJS.BodyType
Since: 3.0.0
Focus
Focus
createDebugGraphic()
Focus
Focus

Description:

Creates a Phaser.GameObjects.Graphics object that is used to render all of the debug bodies and joints to.

This method is called automatically by the constructor, if debugging has been enabled.

The created Graphics object is automatically added to the Scene at 0x0 and given a depth of Number.MAX_VALUE, so it renders above all else in the Scene.

The Graphics object is assigned to the debugGraphic property of this class and drawDebug is enabled.

Returns:
Description:

The newly created Graphics object.

Since: 3.0.0
Focus
Focus
destroy()
Focus
Focus

Description:

Will remove all Matter physics event listeners and clear the matter physics world, engine and any debug graphics, if any.

After destroying the world it cannot be re-used again.

Overrides: Phaser.Events.EventEmitter#destroy
Since: 3.0.0
Focus
Focus
disableGravity()
Focus
Focus

Description:

Sets the world gravity and gravity scale to 0.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
emit(event, [args])
Focus
Focus

Description:

Calls each of the listeners registered for a given event.

Parameters:

name type arguments description
event string | symbol

The event name.

args * <optional>

Additional arguments that will be passed to the event handler.

Returns:
Description:

true if the event had listeners, else false.

Type:
  • boolean
Inherited from: Phaser.Events.EventEmitter#emit
Since: 3.0.0
Focus
Focus
eventNames()
Focus
Focus

Description:

Return an array listing the events for which the emitter has registered listeners.

Type:
  • Array.<(string
  • symbol)>
Inherited from: Phaser.Events.EventEmitter#eventNames
Since: 3.0.0
Focus
Focus
getAllBodies()
Focus
Focus

Description:

Returns all the bodies in the Matter World, including all bodies in children, recursively.

Returns:
Description:

An array of all the Matter JS Bodies in this World.

Type:
  • Array.<MatterJS.BodyType>
Since: 3.22.0
Focus
Focus
getAllComposites()
Focus
Focus

Description:

Returns all the composites in the Matter World, including all composites in children, recursively.

Returns:
Description:

An array of all the Matter JS Composites in this World.

Type:
  • Array.<MatterJS.CompositeType>
Since: 3.22.0
Focus
Focus
getAllConstraints()
Focus
Focus

Description:

Returns all the constraints in the Matter World, including all constraints in children, recursively.

Returns:
Description:

An array of all the Matter JS Constraints in this World.

Type:
  • Array.<MatterJS.ConstraintType>
Since: 3.22.0
Focus
Focus
has(body)
Focus
Focus

Description:

Returns true if the given body can be found within the World.

Parameters:

name type description
body MatterJS.Body | Phaser.GameObjects.GameObject

The Matter Body, or Game Object, to search for within the world.

Returns:
Description:

An array of all the Matter JS Bodies in this World.

Type:
  • Array.<MatterJS.BodyType>
Since: 3.22.0
Focus
Focus
listenerCount(event)
Focus
Focus

Description:

Return the number of listeners listening to a given event.

Parameters:

name type description
event string | symbol

The event name.

Returns:
Description:

The number of listeners.

Type:
  • number
Inherited from: Phaser.Events.EventEmitter#listenerCount
Since: 3.0.0
Focus
Focus
listeners(event)
Focus
Focus

Description:

Return the listeners registered for a given event.

Parameters:

name type description
event string | symbol

The event name.

Returns:
Description:

The registered listeners.

Type:
  • Array.<function()>
Inherited from: Phaser.Events.EventEmitter#listeners
Since: 3.0.0
Focus
Focus
nextCategory()
Focus
Focus

Description:

Returns the next unique category bitfield (starting after the initial default category 0x0001). There are 32 available.

Returns:
Description:

Unique category bitfield

Type:
  • number
Since: 3.0.0
Focus
Focus
nextGroup([isNonColliding])
Focus
Focus

Description:

Returns the next unique group index for which bodies will collide. If isNonColliding is true, returns the next unique group index for which bodies will not collide.

Parameters:

name type arguments Default description
isNonColliding boolean <optional> false

If true, returns the next unique group index for which bodies will not collide.

Returns:
Description:

Unique category bitfield

Type:
  • number
Since: 3.0.0
Focus
Focus
off(event, [fn], [context], [once])
Focus
Focus

Description:

Remove the listeners of a given event.

Parameters:

name type arguments description
event string | symbol

The event name.

fn function <optional>

Only remove the listeners that match this function.

context * <optional>

Only remove the listeners that have this context.

once boolean <optional>

Only remove one-time listeners.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#off
Since: 3.0.0
Focus
Focus
on(event, fn, [context])
Focus
Focus

Description:

Add a listener for a given event.

Parameters:

name type arguments Default description
event string | symbol

The event name.

fn function

The listener function.

context * <optional> this

The context to invoke the listener with.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#on
Since: 3.0.0
Focus
Focus
once(event, fn, [context])
Focus
Focus

Description:

Add a one-time listener for a given event.

Parameters:

name type arguments Default description
event string | symbol

The event name.

fn function

The listener function.

context * <optional> this

The context to invoke the listener with.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#once
Since: 3.0.0
Focus
Focus
pause()
Focus
Focus

Description:

Pauses this Matter World instance and sets enabled to false.

A paused world will not run any simulations for the duration it is paused.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
<private> postUpdate()
Focus
Focus

Description:

Handles the rendering of bodies and debug information to the debug Graphics object, if enabled.

This method is called automatically by the Scene after all processing has taken place.

Since: 3.0.0
Focus
Focus
remove(object, [deep])
Focus
Focus

Description:

Removes a Matter JS object, or array of objects, from the world.

The objects should be valid Matter JS entities, such as a Body, Composite or Constraint.

Triggers beforeRemove and afterRemove events.

Parameters:

name type arguments Default description
object object | Array.<object>

Can be single object, or an array, and can be a body, composite or constraint.

deep boolean <optional> false

Optionally search the objects children and recursively remove those as well.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
removeAllListeners([event])
Focus
Focus

Description:

Remove all listeners, or those of the specified event.

Parameters:

name type arguments description
event string | symbol <optional>

The event name.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#removeAllListeners
Since: 3.0.0
Focus
Focus
removeConstraint(constraint, [deep])
Focus
Focus

Description:

Removes a Matter JS constraint, or array of constraints, from the world.

Triggers beforeRemove and afterRemove events.

Parameters:

name type arguments Default description
constraint MatterJS.ConstraintType | Array.<MatterJS.ConstraintType>

A Matter JS Constraint, or an array of constraints, to be removed.

deep boolean <optional> false

Optionally search the objects children and recursively remove those as well.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
removeListener(event, [fn], [context], [once])
Focus
Focus

Description:

Remove the listeners of a given event.

Parameters:

name type arguments description
event string | symbol

The event name.

fn function <optional>

Only remove the listeners that match this function.

context * <optional>

Only remove the listeners that have this context.

once boolean <optional>

Only remove one-time listeners.

Returns:
Description:

this.

Inherited from: Phaser.Events.EventEmitter#removeListener
Since: 3.0.0
Focus
Focus
<private> renderBodies(bodies)
Focus
Focus

Description:

Renders the given array of Bodies to the debug graphics instance.

Called automatically by the postUpdate method.

Parameters:

name type description
bodies array

An array of bodies from the localWorld.

Since: 3.14.0
Focus
Focus
renderBody(body, graphics, showInternalEdges, [lineColor], [lineOpacity], [lineThickness], [fillColor], [fillOpacity])
Focus
Focus

Description:

Renders a single Matter Body to the given Phaser Graphics Game Object.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render a Body to your own Graphics instance.

If you don't wish to render a line around the body, set the lineColor parameter to null. Equally, if you don't wish to render a fill, set the fillColor parameter to null.

Parameters:

name type arguments Default description
body MatterJS.BodyType

The Matter Body to be rendered.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

showInternalEdges boolean

Render internal edges of the polygon?

lineColor number <optional>

The line color.

lineOpacity number <optional>

The line opacity, between 0 and 1.

lineThickness number <optional> 1

The line thickness.

fillColor number <optional>

The fill color.

fillOpacity number <optional>

The fill opacity, between 0 and 1.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
renderBodyAxes(bodies, graphics, showAxes, lineColor, lineOpacity)
Focus
Focus

Description:

Renders either all axes, or a single axis indicator, for an array of Bodies, to the given Graphics instance.

The debug renderer calls this method if the showAxes or showAngleIndicator config values are set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render bounds to your own Graphics instance.

Parameters:

name type description
bodies array

An array of bodies from the localWorld.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

showAxes boolean

If true it will render all body axes. If false it will render a single axis indicator.

lineColor number

The line color.

lineOpacity number

The line opacity, between 0 and 1.

Since: 3.22.0
Focus
Focus
renderBodyBounds(bodies, graphics, lineColor, lineOpacity)
Focus
Focus

Description:

Renders the bounds of an array of Bodies to the given Graphics instance.

If the body is a compound body, it will render the bounds for the parent compound.

The debug renderer calls this method if the showBounds config value is set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render bounds to your own Graphics instance.

Parameters:

name type description
bodies array

An array of bodies from the localWorld.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

lineOpacity number

The line opacity, between 0 and 1.

Since: 3.22.0
Focus
Focus
renderBodyVelocity(bodies, graphics, lineColor, lineOpacity, lineThickness)
Focus
Focus

Description:

Renders a velocity indicator for an array of Bodies, to the given Graphics instance.

The debug renderer calls this method if the showVelocity config value is set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render bounds to your own Graphics instance.

Parameters:

name type description
bodies array

An array of bodies from the localWorld.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

lineOpacity number

The line opacity, between 0 and 1.

lineThickness number

The line thickness.

Since: 3.22.0
Focus
Focus
renderCollisions(pairs, graphics, lineColor)
Focus
Focus

Description:

Renders the list of collision points and normals to the given Graphics instance.

The debug renderer calls this method if the showCollisions config value is set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render the Grid to your own Graphics instance.

Parameters:

name type description
pairs Array.<MatterJS.Pair>

An array of Matter Pairs to be rendered.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
renderConstraint(constraint, graphics, lineColor, lineOpacity, lineThickness, pinSize, anchorColor, anchorSize)
Focus
Focus

Description:

Renders a single Matter Constraint, such as a Pin or a Spring, to the given Phaser Graphics Game Object.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render a Constraint to your own Graphics instance.

Parameters:

name type description
constraint MatterJS.ConstraintType

The Matter Constraint to render.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

lineOpacity number

The line opacity, between 0 and 1.

lineThickness number

The line thickness.

pinSize number

If this constraint is a pin, this sets the size of the pin circle.

anchorColor number

The color used when rendering this constraints anchors. Set to null to not render anchors.

anchorSize number

The size of the anchor circle, if this constraint has anchors and is rendering them.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
renderConvexHull(body, graphics, hullColor, [lineThickness])
Focus
Focus

Description:

Renders the Convex Hull for a single Matter Body to the given Phaser Graphics Game Object.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render a Body hull to your own Graphics instance.

Parameters:

name type arguments Default description
body MatterJS.BodyType

The Matter Body to be rendered.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

hullColor number

The color used to render the hull.

lineThickness number <optional> 1

The hull line thickness.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
renderGrid(grid, graphics, lineColor, lineOpacity)
Focus
Focus

Description:

Renders the Engine Broadphase Controller Grid to the given Graphics instance.

The debug renderer calls this method if the showBroadphase config value is set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render the Grid to your own Graphics instance.

Parameters:

name type description
grid MatterJS.Grid

The Matter Grid to be rendered.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

lineOpacity number

The line opacity, between 0 and 1.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
<private> renderJoints()
Focus
Focus

Description:

Renders all of the constraints in the world (unless they are specifically set to invisible).

Called automatically by the postUpdate method.

Since: 3.14.0
Focus
Focus
renderSeparations(pairs, graphics, lineColor)
Focus
Focus

Description:

Renders the list of Pair separations to the given Graphics instance.

The debug renderer calls this method if the showSeparations config value is set.

This method is used internally by the Matter Debug Renderer, but is also exposed publically should you wish to render the Grid to your own Graphics instance.

Parameters:

name type description
pairs Array.<MatterJS.Pair>

An array of Matter Pairs to be rendered.

graphics Phaser.GameObjects.Graphics

The Graphics object to render to.

lineColor number

The line color.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
resetCollisionIDs()
Focus
Focus

Description:

Resets the internal collision IDs that Matter.JS uses for Body collision groups.

You should call this before destroying your game if you need to restart the game again on the same page, without first reloading the page. Or, if you wish to consistently destroy a Scene that contains Matter.js and then run it again later in the same game.

Since: 3.17.0
Focus
Focus
resume()
Focus
Focus

Description:

Resumes this Matter World instance from a paused state and sets enabled to true.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
setBodyRenderStyle(body, [lineColor], [lineOpacity], [lineThickness], [fillColor], [fillOpacity])
Focus
Focus

Description:

Sets the debug render style for the given Matter Body.

If you are using this on a Phaser Game Object, such as a Matter Sprite, then pass in the body property to this method, not the Game Object itself.

If you wish to skip a parameter, so it retains its current value, pass false for it.

If you wish to reset the Body render colors to the defaults found in the World Debug Config, then call this method with just the body parameter provided and no others.

Parameters:

name type arguments description
body MatterJS.BodyType

The Matter Body to set the render style on.

lineColor number <optional>

The line color. If null it will use the World Debug Config value.

lineOpacity number <optional>

The line opacity, between 0 and 1. If null it will use the World Debug Config value.

lineThickness number <optional>

The line thickness. If null it will use the World Debug Config value.

fillColor number <optional>

The fill color. If null it will use the World Debug Config value.

fillOpacity number <optional>

The fill opacity, between 0 and 1. If null it will use the World Debug Config value.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
setBounds([x], [y], [width], [height], [thickness], [left], [right], [top], [bottom])
Focus
Focus

Description:

Sets the bounds of the Physics world to match the given world pixel dimensions. You can optionally set which 'walls' to create: left, right, top or bottom. If none of the walls are given it will default to use the walls settings it had previously. I.e. if you previously told it to not have the left or right walls, and you then adjust the world size the newly created bounds will also not have the left and right walls. Explicitly state them in the parameters to override this.

Parameters:

name type arguments Default description
x number <optional> 0

The x coordinate of the top-left corner of the bounds.

y number <optional> 0

The y coordinate of the top-left corner of the bounds.

width number <optional>

The width of the bounds.

height number <optional>

The height of the bounds.

thickness number <optional> 64

The thickness of each wall, in pixels.

left boolean <optional> true

If true will create the left bounds wall.

right boolean <optional> true

If true will create the right bounds wall.

top boolean <optional> true

If true will create the top bounds wall.

bottom boolean <optional> true

If true will create the bottom bounds wall.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
setCompositeRenderStyle(composite)
Focus
Focus

Description:

Sets the debug render style for the children of the given Matter Composite.

Composites themselves do not render, but they can contain bodies, constraints and other composites that may do. So the children of this composite are passed to the setBodyRenderStyle, setCompositeRenderStyle and setConstraintRenderStyle methods accordingly.

Parameters:

name type description
composite MatterJS.CompositeType

The Matter Composite to set the render style on.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
setConstraintRenderStyle(constraint, [lineColor], [lineOpacity], [lineThickness], [pinSize], [anchorColor], [anchorSize])
Focus
Focus

Description:

Sets the debug render style for the given Matter Constraint.

If you are using this on a Phaser Game Object, then pass in the body property to this method, not the Game Object itself.

If you wish to skip a parameter, so it retains its current value, pass false for it.

If you wish to reset the Constraint render colors to the defaults found in the World Debug Config, then call this method with just the constraint parameter provided and no others.

Parameters:

name type arguments description
constraint MatterJS.ConstraintType

The Matter Constraint to set the render style on.

lineColor number <optional>

The line color. If null it will use the World Debug Config value.

lineOpacity number <optional>

The line opacity, between 0 and 1. If null it will use the World Debug Config value.

lineThickness number <optional>

The line thickness. If null it will use the World Debug Config value.

pinSize number <optional>

If this constraint is a pin, this sets the size of the pin circle. If null it will use the World Debug Config value.

anchorColor number <optional>

The color used when rendering this constraints anchors. If null it will use the World Debug Config value.

anchorSize number <optional>

The size of the anchor circle, if this constraint has anchors. If null it will use the World Debug Config value.

Returns:
Description:

This Matter World instance for method chaining.

Since: 3.22.0
Focus
Focus
setEventsProxy()
Focus
Focus

Description:

This internal method acts as a proxy between all of the Matter JS events and then re-emits them via this class.

Since: 3.0.0
Focus
Focus
setGravity([x], [y], [scale])
Focus
Focus

Description:

Sets the worlds gravity to the values given.

Gravity effects all bodies in the world, unless they have the ignoreGravity flag set.

Parameters:

name type arguments Default description
x number <optional> 0

The world gravity x component.

y number <optional> 1

The world gravity y component.

scale number <optional> 0.001

The gravity scale factor.

Returns:
Description:

This Matter World object.

Since: 3.0.0
Focus
Focus
shutdown()
Focus
Focus

Description:

Will remove all Matter physics event listeners and clear the matter physics world, engine and any debug graphics, if any.

Overrides: Phaser.Events.EventEmitter#shutdown
Since: 3.0.0
Focus
Focus
step([delta], [correction])
Focus
Focus

Description:

Manually advances the physics simulation by one iteration.

You can optionally pass in the delta and correction values to be used by Engine.update. If undefined they use the Matter defaults of 60Hz and no correction.

Calling step directly bypasses any checks of enabled or autoUpdate.

It also ignores any custom getDelta functions, as you should be passing the delta value in to this call.

You can adjust the number of iterations that Engine.update performs internally. Use the Scene Matter Physics config object to set the following properties:

positionIterations (defaults to 6) velocityIterations (defaults to 4) constraintIterations (defaults to 2)

Adjusting these values can help performance in certain situations, depending on the physics requirements of your game.

Parameters:

name type arguments Default description
delta number <optional> 16.666

The delta value.

correction number <optional> 1

Optional delta correction value.

Since: 3.4.0
Focus
Focus
update(time, delta)
Focus
Focus

Description:

The internal update method. This is called automatically by the parent Scene.

Moves the simulation forward in time by delta ms. Uses World.correction value as an optional number that specifies the time correction factor to apply to the update. This can help improve the accuracy of the simulation in cases where delta is changing between updates. The value of correction is defined as delta / lastDelta, i.e. the percentage change of delta over the last step. Therefore the value is always 1 (no correction) when delta is constant (or when no correction is desired, which is the default). See the paper on Time Corrected Verlet for more information.

Triggers beforeUpdate and afterUpdate events. Triggers collisionStart, collisionActive and collisionEnd events.

If the World is paused, update is still run, but exits early and does not update the Matter Engine.

Parameters:

name type description
time number

The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.

delta number

The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.

Since: 3.0.0
Focus
Focus
update30Hz()
Focus
Focus

Description:

Runs the Matter Engine.update at a fixed timestep of 30Hz.

Returns:
Description:

The delta value to be passed to Engine.update.

Type:
  • number
Since: 3.4.0
Focus
Focus
update60Hz()
Focus
Focus

Description:

Runs the Matter Engine.update at a fixed timestep of 60Hz.

Returns:
Description:

The delta value to be passed to Engine.update.

Type:
  • number
Since: 3.4.0
Focus
Focus
updateWall(add, [position], [x], [y], [width], [height])
Focus
Focus

Description:

Updates the 4 rectangle bodies that were created, if setBounds was set in the Matter config, to use the new positions and sizes. This method is usually only called internally via the setBounds method.

Parameters:

name type arguments description
add boolean

true if the walls are being added or updated, false to remove them from the world.

position string <optional>

Either left, right, top or bottom. Only optional if add is false.

x number <optional>

The horizontal position to place the walls at. Only optional if add is false.

y number <optional>

The vertical position to place the walls at. Only optional if add is false.

width number <optional>

The width of the walls, in pixels. Only optional if add is false.

height number <optional>

The height of the walls, in pixels. Only optional if add is false.

Since: 3.0.0
Focus
Focus