Block

Block

Creates a new rigid body model with a rectangular hull.

This class allows the block
- to be constrained to other blocks or to the scene itself
- to apply a force from other blocks it collides with
- to rotate around its center via attribute rotate
- trigger an actions from other blocks it collides with

Constructor

# new Block(world, attributes, optionsopt)

Parameters:
Name Type Attributes Description
world Matter.World The Matter.js world
attributes object Visual properties e.g. position, dimensions and color
options Matter.IChamferableBodyDefinition <optional>
Defines the behaviour e.g. mass, bouncyness or whether it can move
Source:
Tutorials:
Example
const attributes = {
  x: 400,
  y: 500,
  w: 810,
  h: 15,
  color: "grey"
}

const options = {
  isStatic: true,
  angle: PI / 36
}

let box = new Block(world, attributes, options)

Extends

Members

# constraints :Array.<Matter.Constraint>

Type:
  • Array.<Matter.Constraint>
Source:

Methods

# (static) drawConstraints()

Draws the constraints (if any) of the matter body to the p5 canvas
Source:

# collideWith(block)

Adds a block to an internal collisions array, to check whether this block colides with another block
Parameters:
Name Type Description
block Block
Source:

# constrainTo(block, optionsopt) → {Matter.Constraint}

Constrains this block to another block. Constraints are used for specifying that a fixed distance must be maintained between two blocks (or a block and a fixed world-space position). The stiffness of constraints can be modified via the options to create springs or elastic.
Parameters:
Name Type Attributes Description
block Block
options Matter.IConstraintDefinition <optional>
Source:
Returns:
Type
Matter.Constraint

# draw()

Draws the matter body to the p5 canvas
Overrides:

# drawSprite()

Draw an image "sprite" instead of the shape of the block. Make sure to set attributes.image so that there is an image to draw.
Source:

# drawVertices(vertices)

Parameters:
Name Type Description
vertices Array.<Matter.Vector>

# offsetMassCentre(block, offset)

Sets the mass centre of the block to a specific offset the offset is relative to the current mass centre
Parameters:
Name Type Description
block Block
offset Matter.Vector
Source:

# removeConstraint(constraint)

Remove a constraint of this block to another block.
Parameters:
Name Type Description
constraint Matter.Constraint
Source:

# rotate(rotation, pointopt, updateVelocityopt)

Rotates the block to a specific angle (absolute) set the angle of the block to the given angle
Parameters:
Name Type Attributes Description
rotation number The angle in radians
point Matter.Vector <optional>
The point to rotate around
updateVelocity boolean <optional>
Whether to update the velocity of the block
Source:
Example
// Rotate the block to 45 degrees
block.rotate(PI / 4)

// Rotate the block to 45 degrees around a specific point
block.rotate(PI / 4, { x: 100, y: 100 })

// Rotate the block to 45 degrees around a specific point and update the velocity
block.rotate(PI / 4, { x: 100, y: 100 }, true)

// Rotate the block to 45 degrees around a specific point and update the velocity
block.rotate(PI / 4, { x: 100, y: 100 }, true)

# rotateBy(rotation, pointopt, updateVelocityopt)

Rotates the block by a specific angle (relative) adds the angle to the current angle of the block
Parameters:
Name Type Attributes Description
rotation number The angle in radians
point Matter.Vector <optional>
The point to rotate around
updateVelocity boolean <optional>
Whether to update the velocity of the block
Source:
Example
// Increments the rotation of the block by 1 degrees
block.rotateBy(PI / 180)

// Increments the rotation of the block by 1 degrees around a specific point
block.rotateBy(PI / 180, { x: 100, y: 100 })