Phaser.Physics.P2

new P2(game, config)

This is your main access to the P2 Physics World. From here you can create materials, listen for events and add bodies into the physics simulation.

Parameters:

Name

Type

Argument

Description

game

Phaser.Game

Reference to the current game instance.

config

object

<optional>

Physics configuration object passed in from the game constructor.

Source - physics/p2/World.js, line 20

Members

applyDamping:boolean

Enable to automatically apply body damping each step.

Source - physics/p2/World.js, line 1919

applyGravity:boolean

Enable to automatically apply gravity each step.

Source - physics/p2/World.js, line 1939

applySpringForces:boolean

Enable to automatically apply spring forces each step.

Source - physics/p2/World.js, line 1899

boundsCollidesWith:array

An array of the bodies the world bounds collides with.

Source - physics/p2/World.js, line 232

boundsCollisionGroup:Phaser.Physics.P2.CollisionGroup

A default collision group.

Source - physics/p2/World.js, line 222

callbackContext:object

The context under which the callbacks are fired.

Source - physics/p2/World.js, line 170

collisionGroups:array

An array containing the collision groups that have been defined in the World.

Source - physics/p2/World.js, line 212

<internal> config:object

The p2 World configuration object.

Internal: - This member is internal (protected) and may be modified or removed in the future.

Source - physics/p2/World.js, line 48

contactMaterial:p2.ContactMaterial

The default Contact Material being used by the World.

Source - physics/p2/World.js, line 1879

emitImpactEvent:boolean

Set to true if you want to the world to emit the "impact" event. Turning this off could improve performance.

Source - physics/p2/World.js, line 1994

everythingCollisionGroup:Phaser.Physics.P2.CollisionGroup

A default collision group.

Source - physics/p2/World.js, line 227

frameRate:number

The frame rate the world will be stepped at. Defaults to 1 / 60, but you can change here. Also see useElapsedTime property.

Source - physics/p2/World.js, line 60

friction:number

Friction between colliding bodies. This value is used if no matching ContactMaterial is found for a Material pair.

Source - physics/p2/World.js, line 1839

game:Phaser.Game

Local reference to game.

Source - physics/p2/World.js, line 25

gravity:Phaser.Physics.P2.InversePointProxy

The gravity applied to all bodies each step.

Source - physics/p2/World.js, line 83

<internal>materials:array.<Phaser.Physics.P2.Material>

A local array of all created Materials.

Type:

  • array.<Phaser.Physics.P2.Material> Internal: - This member is internal (protected) and may be modified or removed in the future.

Source - physics/p2/World.js, line 78

nothingCollisionGroup:Phaser.Physics.P2.CollisionGroup

A default collision group.

Source - physics/p2/World.js, line 217

onBeginContact:Phaser.Signal

This Signal is dispatched when a first contact is created between two bodies. This happens before the step has been done.

It sends 5 arguments: bodyA, bodyB, shapeA, shapeB and contactEquations.

It is possible that in certain situations the bodyA or bodyB values are null. You should check for this in your own code to avoid processing potentially null physics bodies.

Source - physics/p2/World.js, line 182

onBodyAdded:Phaser.Signal

This signal is dispatched when a new Body is added to the World.

It sends 1 argument: body which is the Phaser.Physics.P2.Body that was added to the world.

Source - physics/p2/World.js, line 97

onBodyRemoved:Phaser.Signal

This signal is dispatched when a Body is removed to the World.

It sends 1 argument: body which is the Phaser.Physics.P2.Body that was removed from the world.

Source - physics/p2/World.js, line 106

onConstraintAdded:Phaser.Signal

This signal is dispatched when a Constraint is added to the World.

It sends 1 argument: constraint which is the Phaser.Physics.P2.Constraint that was added to the world.

Source - physics/p2/World.js, line 133

onConstraintRemoved:Phaser.Signal

This signal is dispatched when a Constraint is removed from the World.

It sends 1 argument: constraint which is the Phaser.Physics.P2.Constraint that was removed from the world.

Source - physics/p2/World.js, line 142

onContactMaterialAdded:Phaser.Signal

This signal is dispatched when a Contact Material is added to the World.

It sends 1 argument: material which is the Phaser.Physics.P2.ContactMaterial that was added to the world.

Source - physics/p2/World.js, line 151

onContactMaterialRemoved:Phaser.Signal

This signal is dispatched when a Contact Material is removed from the World.

It sends 1 argument: material which is the Phaser.Physics.P2.ContactMaterial that was removed from the world.

Source - physics/p2/World.js, line 160

onEndContact:Phaser.Signal

This Signal is dispatched when final contact occurs between two bodies. This happens before the step has been done.

It sends 4 arguments: bodyA, bodyB, shapeA and shapeB.

It is possible that in certain situations the bodyA or bodyB values are null. You should check for this in your own code to avoid processing potentially null physics bodies.

Source - physics/p2/World.js, line 194

onSpringAdded:Phaser.Signal

This signal is dispatched when a Spring is added to the World.

It sends 1 argument: spring which is either a Phaser.Physics.P2.Spring, p2.LinearSpring or p2.RotationalSpring that was added to the world.

Source - physics/p2/World.js, line 115

onSpringRemoved:Phaser.Signal

This signal is dispatched when a Spring is removed from the World.

It sends 1 argument: spring which is either a Phaser.Physics.P2.Spring, p2.LinearSpring or p2.RotationalSpring that was removed from the world.

Source - physics/p2/World.js, line 124

paused:boolean

The paused state of the P2 World.

Source - physics/p2/World.js, line 72

postBroadphaseCallback:function

A postBroadphase callback.

Source - physics/p2/World.js, line 165

restitution:number

Default coefficient of restitution between colliding bodies. This value is used if no matching ContactMaterial is found for a Material pair.

Source - physics/p2/World.js, line 1859

sleepMode:number

How to deactivate bodies during simulation. Possible modes are: World.NO_SLEEPING, World.BODY_SLEEPING and World.ISLAND_SLEEPING. If sleeping is enabled, you might need to wake up the bodies if they fall asleep when they shouldn't. If you want to enable sleeping in the world, but want to disable it for a particular body, see Body.allowSleep.

Source - physics/p2/World.js, line 2014

solveConstraints:boolean

Enable/disable constraint solving in each step.

Source - physics/p2/World.js, line 1959

<readonly> time:boolean

The World time.

Source - physics/p2/World.js, line 1979

<readonly> total:number

The total number of bodies in the world.

Source - physics/p2/World.js, line 2036

useElapsedTime:boolean

If true the frameRate value will be ignored and instead p2 will step with the value of Game.Time.physicsElapsed, which is a delta time value.

Source - physics/p2/World.js, line 66

walls:object

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

Source - physics/p2/World.js, line 88

<internal> world:p2.World

The p2 World in which the simulation is run.

Internal: - This member is internal (protected) and may be modified or removed in the future.

Source - physics/p2/World.js, line 54

addBody(body)→ {boolean}

Add a body to the world.

Parameters:

Name

Type

Description

body

Phaser.Physics.P2.Body

The Body to add to the World.

Returns:

boolean-

True if the Body was added successfully, otherwise false.

Source - physics/p2/World.js, line 887

addConstraint(constraint)→ {Phaser.Physics.P2.Constraint}

Adds a Constraint to the world.

Parameters:

Name

Type

Description

constraint

Phaser.Physics.P2.Constraint

The Constraint to add to the World.

Returns:

Phaser.Physics.P2.Constraint-

The Constraint that was added.

Source - physics/p2/World.js, line 1119

addContactMaterial(material)→

{Phaser.Physics.P2.ContactMaterial}

Adds a Contact Material to the world.

Parameters:

Name

Type

Description

material

Phaser.Physics.P2.ContactMaterial

The Contact Material to be added to the World.

Returns:

Phaser.Physics.P2.ContactMaterial

The Contact Material that was added.

Source - physics/p2/World.js, line 1153

addSpring(spring)→

{Phaser.Physics.P2.Spring}

Adds a Spring to the world.

Parameters:

Name

Type

Description

spring

Phaser.Physics.P2.Spring | p2.LinearSpring | p2.RotationalSpring

The Spring to add to the World.

Returns:

Phaser.Physics.P2.Spring

The Spring that was added.

Source - physics/p2/World.js, line 931

beginContactHandler(event)

Handles a p2 begin contact event.

Parameters:

Name

Type

Description

event

object

The event data.

Source - physics/p2/World.js, line 502

clear()

Clears all bodies from the simulation, resets callbacks and resets the collision bitmask.

The P2 world is also cleared:

  • Removes all solver equations
  • Removes all constraints
  • Removes all bodies
  • Removes all springs
  • Removes all contact materials

This is called automatically when you switch state.

Source - physics/p2/World.js, line 800

clearTilemapLayerBodies(map, layer)

Clears all physics bodies from the given TilemapLayer that were created with World.convertTilemap.

Parameters:

Name

Type

Argument

Description

map

Phaser.Tilemap

The Tilemap to get the map data from.

layer

number | string | Phaser.TilemapLayer

<optional>

The layer to operate on. If not given will default to map.currentLayer.

Source - physics/p2/World.js, line 1666

convertCollisionObjects(map, layer, addToWorld)→ {array}

Converts all of the polylines objects inside a Tiled ObjectGroup into physics bodies that are added to the world. Note that the polylines must be created in such a way that they can withstand polygon decomposition.

Parameters:

Name

Type

Argument

Default

Description

map

Phaser.Tilemap

The Tilemap to get the map data from.

layer

number | string | Phaser.TilemapLayer

<optional>

The layer to operate on. If not given will default to map.currentLayer.

addToWorld

boolean

<optional>

true

If true it will automatically add each body to the world.

Returns:

array-

An array of the Phaser.Physics.Body objects that have been created.

Source - physics/p2/World.js, line 1625

convertTilemap(map, layer, addToWorld, optimize)→ {array}

Goes through all tiles in the given Tilemap and TilemapLayer and converts those set to collide into physics bodies. Only call this after you have specified all of the tiles you wish to collide with calls like Tilemap.setCollisionBetween, etc. Every time you call this method it will destroy any previously created bodies and remove them from the world. Therefore understand it's a very expensive operation and not to be done in a core game update loop.

Parameters:

Name

Type

Argument

Default

Description

map

Phaser.Tilemap

The Tilemap to get the map data from.

layer

number | string | Phaser.TilemapLayer

<optional>

The layer to operate on. If not given will default to map.currentLayer.

addToWorld

boolean

<optional>

true

If true it will automatically add each body to the world, otherwise it's up to you to do so.

optimize

boolean

<optional>

true

If true adjacent colliding tiles will be combined into a single body to save processing. However it means you cannot perform specific Tile to Body collision responses.

Returns:

array-

An array of the Phaser.Physics.P2.Body objects that were created.

Source - physics/p2/World.js, line 1688

createBody(x, y, mass, addToWorld, options, points)→

{Phaser.Physics.P2.Body}

Creates a new Body and adds it to the World.

Parameters:

Name

Type

Argument

Default

Description

x

number

The x coordinate of Body.

y

number

The y coordinate of Body.

mass

number

The mass of the Body. A mass of 0 means a 'static' Body is created.

addToWorld

boolean

<optional>

false

Automatically add this Body to the world? (usually false as it won'thave any shapes on construction).

options

object

An object containing the build options:

Properties

Name

Type

Argument

Default

Description

optimalDecomp

boolean

<optional>

false

Set to true if you need optimal decomposition. Warning: very slow for polygons with more than 10 vertices.

skipSimpleCheck

boolean

<optional>

false

Set to true if you already know that the path is not intersecting itself.

removeCollinearPoints

boolean | number

<optional>

false

Set to a number (angle threshold value) to remove collinear points, or false to keep all points.

points

Array.<number> | number

An array of 2d vectors that form the convex or concave polygon. Either [[0,0], [0,1],...] or a flat array of numbers that will be interpreted as [x,y, x,y, ...], or the arguments passed can be flat x,y values e.g. setPolygon(options, x,y, x,y, x,y, ...) where x and y are numbers.

createCollisionGroup(object)

Creates a new Collision Group and optionally applies it to the given object. Collision Groups are handled using bitmasks, therefore you have a fixed limit you can create before you need to re-use older groups.

Parameters:

Name

Type

Argument

Description

object

Phaser.Group | Phaser.Sprite

<optional>

An optional Sprite or Group to apply the Collision Group to. If a Group is given it will be applied to all top-level children.

Source - physics/p2/World.js, line 1411

createContactMaterial(materialA, materialB, options)→

{Phaser.Physics.P2.ContactMaterial}

Creates a Contact Material from the two given Materials. You can then edit the properties of the Contact Material directly.

Parameters:

Name

Type

Argument

Description

materialA

Phaser.Physics.P2.Material

<optional>

The first Material to create the ContactMaterial from. If undefined it will create a new Material object first.

materialB

Phaser.Physics.P2.Material

<optional>

The second Material to create the ContactMaterial from. If undefined it will create a new Material object first.

options

object

<optional>

Material options object.

Returns:

Phaser.Physics.P2.ContactMaterial

The Contact Material that was created.

Source - physics/p2/World.js, line 1246

createDistanceConstraint(bodyA, bodyB, distance, localAnchorA,localAnchorB, maxForce)→

{Phaser.Physics.P2.DistanceConstraint}

Creates a constraint that tries to keep the distance between two bodies constant.

Parameters:

Name

Type

Argument

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

distance

number

The distance to keep between the bodies.

localAnchorA

Array

<optional>

The anchor point for bodyA, defined locally in bodyA frame. Defaults to [0,0].

localAnchorB

Array

<optional>

The anchor point for bodyB, defined locally in bodyB frame. Defaults to [0,0].

maxForce

number

<optional>

The maximum force that should be applied to constrain the bodies.

Returns:

Phaser.Physics.P2.DistanceConstraint

The constraint

Source - physics/p2/World.js, line 979

createGearConstraint(bodyA, bodyB, angle, ratio)→

{Phaser.Physics.P2.GearConstraint}

Creates a constraint that tries to keep the distance between two bodies constant.

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

angle

number

<optional>

0

The relative angle

ratio

number

<optional>

1

The gear ratio.

Returns:

Phaser.Physics.P2.GearConstraint

The constraint

Source - physics/p2/World.js, line 1007

createLockConstraint(bodyA, bodyB, offset, angle, maxForce)→

{Phaser.Physics.P2.LockConstraint}

Locks the relative position between two bodies.

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

offset

Array

<optional>

The offset of bodyB in bodyA's frame. The value is an array with 2 elements matching x and y, i.e: [32, 32].

angle

number

<optional>

0

The angle of bodyB in bodyA's frame.

maxForce

number

<optional>

The maximum force that should be applied to constrain the bodies.

Returns:

Phaser.Physics.P2.LockConstraint

The constraint

Source - physics/p2/World.js, line 1062

createMaterial(name, body)→

{Phaser.Physics.P2.Material}

Creates a Material. Materials are applied to Shapes owned by a Body and can be set with Body.setMaterial(). Materials are a way to control what happens when Shapes collide. Combine unique Materials together to create Contact Materials. Contact Materials have properties such as friction and restitution that allow for fine-grained collision control between different Materials.

Parameters:

Name

Type

Argument

Description

name

string

<optional>

Optional name of the Material. Each Material has a unique ID but string names are handy for debugging.

body

Phaser.Physics.P2.Body

<optional>

Optional Body. If given it will assign the newly created Material to the Body shapes.

Returns:

Phaser.Physics.P2.Material

The Material that was created. This is also stored in Phaser.Physics.P2.materials.

Source - physics/p2/World.js, line 1219

createParticle(x, y, mass, addToWorld, options, points)

Creates a new Particle and adds it to the World.

Parameters:

Name

Type

Argument

Default

Description

x

number

The x coordinate of Body.

y

number

The y coordinate of Body.

mass

number

The mass of the Body. A mass of 0 means a 'static' Body is created.

addToWorld

boolean

<optional>

false

Automatically add this Body to the world? (usually false as it won'thave any shapes on construction).

options

object

An object containing the build options:

Properties

Name

Type

Argument

Default

Description

optimalDecomp

boolean

<optional>

false

Set to true if you need optimal decomposition. Warning: very slow for polygons with more than 10 vertices.

skipSimpleCheck

boolean

<optional>

false

Set to true if you already know that the path is not intersecting itself.

removeCollinearPoints

boolean | number

<optional>

false

Set to a number (angle threshold value) to remove collinear points, or false to keep all points.

points

Array.<number> | number

An array of 2d vectors that form the convex or concave polygon. Either [[0,0], [0,1],...] or a flat array of numbers that will be interpreted as [x,y, x,y, ...], or the arguments passed can be flat x,y values e.g. setPolygon(options, x,y, x,y, x,y, ...) where x and y are numbers.

Source - physics/p2/World.js, line 1584

createPrismaticConstraint(bodyA, bodyB, lockRotation, anchorA, anchorB,axis, maxForce)→

{Phaser.Physics.P2.PrismaticConstraint}

Constraint that only allows bodies to move along a line, relative to each other. See http://www.iforce2d.net/b2dtut/joints-prismatic

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

lockRotation

boolean

<optional>

true

If set to false, bodyB will be free to rotate around its anchor point.

anchorA

Array

<optional>

Body A's anchor point, defined in its own local frame. The value is an array with 2 elements matching x and y, i.e: [32, 32].

anchorB

Array

<optional>

Body A's anchor point, defined in its own local frame. The value is an array with 2 elements matching x and y, i.e: [32, 32].

axis

Array

<optional>

An axis, defined in body A frame, that body B's anchor point may slide along. The value is an array with 2 elements matching x and y, i.e: [32, 32].

maxForce

number

<optional>

The maximum force that should be applied to constrain the bodies.

Returns:

Phaser.Physics.P2.PrismaticConstraint

The constraint

Source - physics/p2/World.js, line 1089

createRevoluteConstraint(bodyA, pivotA, bodyB, pivotB, maxForce,worldPivot)→

{Phaser.Physics.P2.RevoluteConstraint}

Connects two bodies at given offset points, letting them rotate relative to each other around this point. The pivot points are given in world (pixel) coordinates.

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

pivotA

Array

The point relative to the center of mass of bodyA which bodyA is constrained to. The value is an array with 2 elements matching x and y, i.e: [32, 32].

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

pivotB

Array

The point relative to the center of mass of bodyB which bodyB is constrained to. The value is an array with 2 elements matching x and y, i.e: [32, 32].

maxForce

number

<optional>

0

The maximum force that should be applied to constrain the bodies.

worldPivot

Float32Array

<optional>

null

A pivot point given in world coordinates. If specified, localPivotA and localPivotB are automatically computed from this value.

Returns:

Phaser.Physics.P2.RevoluteConstraint

The constraint

Source - physics/p2/World.js, line 1033

createRotationalSpring(bodyA, bodyB, restAngle, stiffness, damping)→

{Phaser.Physics.P2.RotationalSpring}

Creates a rotational spring, connecting two bodies. A spring can have a resting length, a stiffness and damping.

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

restAngle

number

<optional>

The relative angle of bodies at which the spring is at rest. If not given, it's set to the current relative angle between the bodies.

stiffness

number

<optional>

100

Stiffness of the spring. A number >= 0.

damping

number

<optional>

1

Damping of the spring. A number >= 0.

Returns:

Phaser.Physics.P2.RotationalSpring

The spring

Source - physics/p2/World.js, line 1515

createSpring(bodyA, bodyB, restLength, stiffness, damping, worldA,worldB, localA, localB)→

{Phaser.Physics.P2.Spring}

Creates a linear spring, connecting two bodies. A spring can have a resting length, a stiffness and damping.

Parameters:

Name

Type

Argument

Default

Description

bodyA

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

First connected body.

bodyB

Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body

Second connected body.

restLength

number

<optional>

1

Rest length of the spring. A number > 0.

stiffness

number

<optional>

100

Stiffness of the spring. A number >= 0.

damping

number

<optional>

1

Damping of the spring. A number >= 0.

worldA

Array

<optional>

Where to hook the spring to body A in world coordinates. This value is an array by 2 elements, x and y, i.e: [32, 32].

worldB

Array

<optional>

Where to hook the spring to body B in world coordinates. This value is an array by 2 elements, x and y, i.e: [32, 32].

localA

Array

<optional>

Where to hook the spring to body A in local body coordinates. This value is an array by 2 elements, x and y, i.e: [32, 32].

localB

Array

<optional>

Where to hook the spring to body B in local body coordinates. This value is an array by 2 elements, x and y, i.e: [32, 32].

Returns:

Phaser.Physics.P2.Spring

The spring

Source - physics/p2/World.js, line 1484

destroy()

Clears all bodies from the simulation and unlinks World from Game. Should only be called on game shutdown. Call clear on a State change.

Source - physics/p2/World.js, line 874

enable(object, debug, children)

This will create a P2 Physics body on the given game object or array of game objects. A game object can only have 1 physics body active at any one time, and it can't be changed until the object is destroyed. Note: When the game object is enabled for P2 physics it has its anchor x/y set to 0.5 so it becomes centered.

Parameters:

Name

Type

Argument

Default

Description

object

object | array | Phaser.Group

The game object to create the physics body on. Can also be an array or Group of objects, a body will be created on every child that has a body property.

debug

boolean

<optional>

false

Create a debug object to go with this body?

children

boolean

<optional>

true

Should a body be created on all children of this object? If true it will recurse down the display list as far as it can go.

Source - physics/p2/World.js, line 313

enableBody(object, debug)

Creates a P2 Physics body on the given game object. A game object can only have 1 physics body active at any one time, and it can't be changed until the body is nulled.

Parameters:

Name

Type

Description

object

object

The game object to create the physics body on. A body will only be created if this object has a null body property.

debug

boolean

Create a debug object to go with this body?

Source - physics/p2/World.js, line 372

endContactHandler(event)

Handles a p2 end contact event.

Parameters:

Name

Type

Description

event

object

The event data.

Source - physics/p2/World.js, line 527

getBodies()→

{array.<Phaser.Physics.P2.Body>}

Populates and returns an array with references to of all current Bodies in the world.

Returns:

array.<Phaser.Physics.P2.Body>

An array containing all current Bodies in the world.

Source - physics/p2/World.js, line 1266

getBody(object)→ {p2.Body}

Checks the given object to see if it has a p2.Body and if so returns it.

Parameters:

Name

Type

Description

object

object

The object to check for a p2.Body on.

Returns:

p2.Body-

The p2.Body, or null if not found.

Source - physics/p2/World.js, line 1286

getConstraints()→ {array.<Phaser.Physics.P2.Constraint>}

Populates and returns an array of all current Constraints in the world. You will get an array of p2 constraints back. This can be of mixed types, for example the array may contain PrismaticConstraints, RevoluteConstraints or any other valid p2 constraint type.

Returns:

array.<Phaser.Physics.P2.Constraint>-

An array containing all current Constraints in the world.

Source - physics/p2/World.js, line 1335

getContactMaterial(materialA, materialB)→

{Phaser.Physics.P2.ContactMaterial|boolean}

Gets a Contact Material based on the two given Materials.

Parameters:

Name

Type

Description

materialA

Phaser.Physics.P2.Material

The first Material to search for.

materialB

Phaser.Physics.P2.Material

The second Material to search for.

Returns:

Phaser.Physics.P2.ContactMaterial | boolean-

The Contact Material or false if none was found matching the Materials given.

Source - physics/p2/World.js, line 1187

getSprings()→

{array.<Phaser.Physics.P2.Spring>}

Populates and returns an array of all current Springs in the world.

Returns:

array.<Phaser.Physics.P2.Spring>

An array containing all current Springs in the world.

Source - physics/p2/World.js, line 1315

hitTest(worldPoint, bodies, precision, filterStatic)→ {Array}

Test if a world point overlaps bodies. You will get an array of actual P2 bodies back. You can find out which Sprite a Body belongs to (if any) by checking the Body.parent.sprite property. Body.parent is a Phaser.Physics.P2.Body property.

Parameters:

Name

Type

Argument

Default

Description

worldPoint

Phaser.Point

Point to use for intersection tests. The points values must be in world (pixel) coordinates.

bodies

Array.<(Phaser.Physics.P2.Body|Phaser.Sprite|p2.Body)>

<optional>

A list of objects to check for intersection. If not given it will check Phaser.Physics.P2.world.bodies (i.e. all world bodies)

precision

number

<optional>

5

Used for matching against particles and lines. Adds some margin to these infinitesimal objects.

filterStatic

boolean

<optional>

false

If true all Static objects will be removed from the results array.

Returns:

Array-

Array of bodies that overlap the point.

Source - physics/p2/World.js, line 1357

mpx(v)→ {number}

Convert p2 physics value (meters) to pixel scale. By default Phaser uses a scale of 20px per meter. If you need to modify this you can over-ride these functions via the Physics Configuration object.

Parameters:

Name

Type

Description

v

number

The value to convert.

Returns:

number-

The scaled value.

Source - physics/p2/World.js, line 1777

mpxi(v)→ {number}

Convert p2 physics value (meters) to pixel scale and inverses it. By default Phaser uses a scale of 20px per meter. If you need to modify this you can over-ride these functions via the Physics Configuration object.

Parameters:

Name

Type

Description

v

number

The value to convert.

Returns:

number-

The scaled value.

Source - physics/p2/World.js, line 1807

pause()

Pauses the P2 World independent of the game pause state.

Source - physics/p2/World.js, line 733

preUpdate()

Called at the start of the core update loop. Purges flagged bodies from the world.

Source - physics/p2/World.js, line 295

pxm(v)→

{number}

Convert pixel value to p2 physics scale (meters). By default Phaser uses a scale of 20px per meter. If you need to modify this you can over-ride these functions via the Physics Configuration object.

Parameters:

Name

Type

Description

v

number

The value to convert.

Returns:

number-

The scaled value.

Source - physics/p2/World.js, line 1792

pxmi(v)→ {number}

Convert pixel value to p2 physics scale (meters) and inverses it. By default Phaser uses a scale of 20px per meter. If you need to modify this you can over-ride these functions via the Physics Configuration object.

Parameters:

Name

Type

Description

v

number

The value to convert.

Returns:

number-

The scaled value.

Source - physics/p2/World.js, line 1822

removeBody(body)→

{Phaser.Physics.P2.Body}

Removes a body from the world. This will silently fail if the body wasn't part of the world to begin with.

Parameters:

Name

Type

Description

body

Phaser.Physics.P2.Body

The Body to remove from the World.

Returns:

Phaser.Physics.P2.Body-

The Body that was removed.

Source - physics/p2/World.js, line 911

removeBodyNextStep(body)

This will add a P2 Physics body into the removal list for the next step.

Parameters:

Name

Type

Description

body

Phaser.Physics.P2.Body

The body to remove at the start of the next step.

Source - physics/p2/World.js, line 283

removeConstraint(constraint)→ {Phaser.Physics.P2.Constraint}

Removes a Constraint from the world.

Parameters:

Name

Type

Description

constraint

Phaser.Physics.P2.Constraint

The Constraint to be removed from the World.

Returns:

Phaser.Physics.P2.Constraint-

The Constraint that was removed.

Source - physics/p2/World.js, line 1136

removeContactMaterial(material)→

{Phaser.Physics.P2.ContactMaterial}

Removes a Contact Material from the world.

Parameters:

Name

Type

Description

material

Phaser.Physics.P2.ContactMaterial

The Contact Material to be removed from the World.

Returns:

Phaser.Physics.P2.ContactMaterial

The Contact Material that was removed.

Source - physics/p2/World.js, line 1170

removeSpring(spring)→

{Phaser.Physics.P2.Spring}

Removes a Spring from the world.

Parameters:

Name

Type

Description

spring

Phaser.Physics.P2.Spring

The Spring to remove from the World.

Returns:

Phaser.Physics.P2.Spring

The Spring that was removed.

Source - physics/p2/World.js, line 955

reset()

Called by Phaser.Physics when a State swap occurs. Starts the begin and end Contact listeners again.

Source - physics/p2/World.js, line 779

resume()

Resumes a paused P2 World.

Source - physics/p2/World.js, line 744

setBounds(x, y, width, height, left, right, top, bottom,setCollisionGroup)

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

Argument

Default

Description

x

number

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

y

number

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

width

number

The width of the bounds.

height

number

The height of the bounds.

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.

setCollisionGroup

boolean

<optional>

true

If true the Bounds will be set to use its own Collision Group.

Source - physics/p2/World.js, line 646

setImpactEvents(state)

Impact event handling is disabled by default. Enable it before any impact events will be dispatched. In a busy world hundreds of impact events can be generated every step, so only enable this if you cannot do what you need via beginContact or collision masks.

Parameters:

Name

Type

Description

state

boolean

Set to true to enable impact events, or false to disable.

Source - physics/p2/World.js, line 393

setMaterial(material, bodies)

Sets the given Material against all Shapes owned by all the Bodies in the given array.

Parameters:

Name

Type

Description

material

Phaser.Physics.P2.Material

The Material to be applied to the given Bodies.

bodies

array.<Phaser.Physics.P2.Body>

An Array of Body objects that the given Material will be set on.

Source - physics/p2/World.js, line 1201

setPostBroadphaseCallback(callback, context)

Sets a callback to be fired after the Broadphase has collected collision pairs in the world. Just because a pair exists it doesn't mean they will collide, just that they potentially could do. If your calback returns false the pair will be removed from the narrowphase. This will stop them testing for collision this step. Returning true from the callback will ensure they are checked in the narrowphase.

Parameters:

Name

Type

Description

callback

function

The callback that will receive the postBroadphase event data. It must return a boolean. Set to null to disable an existing callback.

context

object

The context under which the callback will be fired.

Source - physics/p2/World.js, line 413

toJSON()→ {object}

Converts the current world into a JSON object.

Returns:

object-

A JSON representation of the world.

Source - physics/p2/World.js, line 1399

update()

Internal P2 update loop.

Source - physics/p2/World.js, line 755

updateBoundsCollisionGroup(setCollisionGroup)

By default the World will be set to collide everything with everything. The bounds of the world is a Body with 4 shapes, one for each face. If you start to use your own collision groups then your objects will no longer collide with the bounds. To fix this you need to adjust the bounds to use its own collision group first BEFORE changing your Sprites collision group.

Parameters:

Name

Type

Argument

Default

Description

setCollisionGroup

boolean

<optional>

true

If true the Bounds will be set to use its own Collision Group.

Source - physics/p2/World.js, line 608