Class: Body

new Body(world, gameObject)

Parameters:
Name Type Description

The Arcade Physics simulation this Body belongs to.

gameObject Phaser.GameObjects.GameObject

The Game Object this Body belongs to.

Since: 3.0.0

Members

acceleration :Phaser.Math.Vector2

The Body's change in velocity, in pixels per second squared.

Since: 3.0.0

allowDrag :boolean

Whether this Body's velocity is affected by its drag.

• boolean
Since: 3.0.0
Default Value:
• true

allowGravity :boolean

Whether this Body's position is affected by gravity (local or world).

• boolean
Since: 3.0.0
Default Value:
• true
See:

allowRotation :boolean

Whether this Body's rotation is affected by its angular acceleration and angular velocity.

• boolean
Since: 3.0.0
Default Value:
• true

angle :number

The calculated angle of this Body's velocity vector, in radians, during the last step.

• number
Since: 3.0.0
Default Value:
• 0

angularAcceleration :number

The Body's angular acceleration (change in angular velocity), in degrees per second squared.

• number
Since: 3.0.0
Default Value:
• 0

angularDrag :number

Loss of angular velocity due to angular movement, in degrees per second.

Angular drag is applied only when angular acceleration is zero.

• number
Since: 3.0.0
Default Value:
• 0

angularVelocity :number

The rate of change of this Body's rotation, in degrees per second.

Type:
• number
Since: 3.0.0
Default Value:
• 0

Whether this Body is colliding with a Static Body, a tile, or the world boundary. In a collision with a Static Body, if this Body has zero velocity then embedded will be set instead.

Type:
Since: 3.0.0
See:

The bottom edge of this Body.

• number
Since: 3.0.0

bounce :Phaser.Math.Vector2

Rebound following a collision, relative to 1.

Since: 3.0.0

center :Phaser.Math.Vector2

The center of the Body. The midpoint of its position (top-left corner) and its bottom-right corner.

Type:
Since: 3.0.0

Whether this Body is checked for collisions and for which directions. You can set checkCollision.none = true to disable collision checks.

Since: 3.0.0

collideWorldBounds :boolean

Whether this Body interacts with the world boundary.

• boolean
Since: 3.0.0
Default Value:
• false

customBoundsRectangle :Phaser.Geom.Rectangle

The rectangle used for world boundary collisions.

By default it is set to the world boundary rectangle. Or, if this Body was created by a Physics Group, then whatever rectangle that Group defined.

You can also change it by using the Body.setBoundsRectangle method.

Since: 3.20

customSeparateX :boolean

A flag disabling the default horizontal separation of colliding bodies. Pass your own collideCallback to the collider.

• boolean
Since: 3.0.0
Default Value:
• false

customSeparateY :boolean

A flag disabling the default vertical separation of colliding bodies. Pass your own collideCallback to the collider.

• boolean
Since: 3.0.0
Default Value:
• false

debugBodyColor :number

The color of this Body on the debug display.

• number
Since: 3.0.0

debugShowBody :boolean

Whether the Body is drawn to the debug display.

• boolean
Since: 3.0.0

debugShowVelocity :boolean

Whether the Body's velocity is drawn to the debug display.

• boolean
Since: 3.0.0

deltaMax :Phaser.Math.Vector2

The Body's absolute maximum change in position, in pixels per step.

Since: 3.0.0

drag :Phaser.Math.Vector2

When useDamping is false (the default), this is absolute loss of velocity due to movement, in pixels per second squared.

When useDamping is true, this is a damping multiplier between 0 and 1. A value of 0 means the Body stops instantly. A value of 0.01 mean the Body loses 99% of its velocity per second. A value of 0.1 means the Body loses 90% of its velocity per second. A value of 1 means the Body loses no velocity.

The x and y components are applied separately.

Drag is applied only when acceleration is zero.

Since: 3.0.0

embedded :boolean

Whether this Body is overlapped with another and both are not moving, on at least one axis.

• boolean
Since: 3.0.0
Default Value:
• false

enable :boolean

Whether this Body is updated by the physics simulation.

• boolean
Since: 3.0.0
Default Value:
• true

facing :number

The direction of the Body's velocity, as calculated during the last step. This is a numeric constant value (FACING_UP, FACING_DOWN, FACING_LEFT, FACING_RIGHT). If the Body is moving on both axes, this describes motion on the vertical axis only.

• number
Since: 3.0.0
See:

friction :Phaser.Math.Vector2

If this Body is immovable and in motion, friction is the proportion of this Body's motion received by the riding Body on each axis, relative to 1. The horizontal component (x) is applied only when two colliding Bodies are separated vertically. The vertical component (y) is applied only when two colliding Bodies are separated horizontally. The default value (1, 0) moves the riding Body horizontally in equal proportion to this Body and vertically not at all.

Since: 3.0.0

gameObject :Phaser.GameObjects.GameObject

The Game Object this Body belongs to.

Since: 3.0.0

gravity :Phaser.Math.Vector2

Acceleration due to gravity (specific to this Body), in pixels per second squared. Total gravity is the sum of this vector and the simulation's gravity.

Since: 3.0.0
See:

halfHeight :number

Half the Body's height, in pixels.

• number
Since: 3.0.0

halfWidth :number

Half the Body's width, in pixels.

Type:
• number
Since: 3.0.0

The height of the Body, in pixels. If the Body is circular, this is also the diameter. If you wish to change the height use the Body.setSize method.

• number
Since: 3.0.0
Default Value:
• 64

immovable :boolean

Whether this Body can be moved by collisions with another Body.

• boolean
Since: 3.0.0
Default Value:
• false

isCircle :boolean

Whether this Body is circular (true) or rectangular (false).

Type:
• boolean
Since: 3.0.0
Default Value:
• false
See:

The left edge of the Body. Identical to x.

• number
Since: 3.0.0

mass :number

The Body's inertia, relative to a default unit (1). With bounce, this affects the exchange of momentum (velocities) during collisions.

• number
Since: 3.0.0
Default Value:
• 1

maxAngular :number

The Body's maximum angular velocity, in degrees per second.

• number
Since: 3.0.0
Default Value:
• 1000

maxSpeed :number

The maximum speed this Body is allowed to reach, in pixels per second.

If not negative it limits the scalar value of speed.

Any negative value means no maximum is being applied (the default).

• number
Since: 3.16.0
Default Value:
• -1

maxVelocity :Phaser.Math.Vector2

The Body's absolute maximum velocity, in pixels per second. The horizontal and vertical components are applied separately.

Since: 3.0.0

moves :boolean

Whether the Body's position and rotation are affected by its velocity, acceleration, drag, and gravity.

Type:
• boolean
Since: 3.0.0
Default Value:
• true

The Body's change in position (due to velocity) at the last step, in pixels.

The size of this value depends on the simulation's step rate.

Since: 3.0.0

offset :Phaser.Math.Vector2

The offset of this Body's position from its Game Object's position, in source pixels.

Since: 3.0.0
See:

onCollide :boolean

Whether the simulation emits a collide event when this Body collides with another.

• boolean
Since: 3.0.0
Default Value:
• false
See:

onOverlap :boolean

Whether the simulation emits an overlap event when this Body overlaps with another.

• boolean
Since: 3.0.0
Default Value:
• false
See:

onWorldBounds :boolean

Whether the simulation emits a worldbounds event when this Body collides with the world boundary (and collideWorldBounds is also true).

• boolean
Since: 3.0.0
Default Value:
• false
See:

overlapR :number

The amount of overlap (before separation), if this Body is circular and colliding with another circular body.

• number
Since: 3.0.0
Default Value:
• 0

overlapX :number

The amount of horizontal overlap (before separation), if this Body is colliding with another.

• number
Since: 3.0.0
Default Value:
• 0

overlapY :number

The amount of vertical overlap (before separation), if this Body is colliding with another.

Type:
• number
Since: 3.0.0
Default Value:
• 0

The Body's physics type (dynamic or static).

• number
Since: 3.0.0
Default Value:

position :Phaser.Math.Vector2

The position of this Body within the simulation.

Since: 3.0.0

preRotation :number

The Body rotation, in degrees, during the previous step.

• number
Since: 3.0.0

prev :Phaser.Math.Vector2

The position of this Body during the previous step.

Since: 3.0.0

prevFrame :Phaser.Math.Vector2

The position of this Body during the previous frame.

Since: 3.20.0

pushable :boolean

Sets if this Body can be pushed by another Body.

A body that cannot be pushed will reflect back all of the velocity it is given to the colliding body. If that body is also not pushable, then the separation will be split between them evenly.

If you want your body to never move or seperate at all, see the setImmovable method.

By default, Dynamic Bodies are always pushable.

Type:
• boolean
Since: 3.50.0
Default Value:
• true
See:
• Phaser.GameObjects.Components.Pushable#setPushable

If this Body is circular, this is the unscaled radius of the Body, as set by setCircle(), in source pixels. The true radius is equal to halfWidth.

Type:
• number
Since: 3.0.0
Default Value:
• 0
See:

The right edge of the Body.

• number
Since: 3.0.0

rotation :number

This body's rotation, in degrees, based on its angular acceleration and angular velocity. The Body's rotation controls the angle of its Game Object. It doesn't rotate the Body's own geometry, which is always an axis-aligned rectangle or a circle.

• number
Since: 3.0.0

sourceHeight :number

The unscaled height of the Body, in source pixels, as set by setSize(). The default is the height of the Body's Game Object's texture frame.

• number
Since: 3.0.0
See:

sourceWidth :number

The unscaled width of the Body, in source pixels, as set by setSize(). The default is the width of the Body's Game Object's texture frame.

• number
Since: 3.0.0
See:

speed :number

The calculated magnitude of the Body's velocity, in pixels per second, during the last step.

• number
Since: 3.0.0
Default Value:
• 0

syncBounds :boolean

Whether to automatically synchronize this Body's dimensions to the dimensions of its Game Object's visual bounds.

Type:
• boolean
Since: 3.0.0
Default Value:
• false
See:

The top edge of the Body. Identical to y.

Type:
• number
Since: 3.0.0

Whether this Body is colliding with a Body or Static Body and in which direction. In a collision where both bodies have zero velocity, embedded will be set instead.

Since: 3.0.0
See:

transform :object

Transformations applied to this Body.

• object
Since: 3.4.0

useDamping :boolean

If this Body is using drag for deceleration this property controls how the drag is applied. If set to true drag will use a damping effect rather than a linear approach. If you are creating a game where the Body moves freely at any angle (i.e. like the way the ship moves in the game Asteroids) then you will get a far smoother and more visually correct deceleration by using damping, avoiding the axis-drift that is prone with linear deceleration.

If you enable this property then you should use far smaller drag values than with linear, as they are used as a multiplier on the velocity. Values such as 0.05 will give a nice slow deceleration.

• boolean
Since: 3.10.0
Default Value:
• false

velocity :Phaser.Math.Vector2

The Body's velocity, in pixels per second.

Type:
Since: 3.0.0

This Body's touching value during the previous step.

Type:
Since: 3.0.0
See:

The width of the Body, in pixels. If the Body is circular, this is also the diameter. If you wish to change the width use the Body.setSize method.

Type:
• number
Since: 3.0.0
Default Value:
• 64

The Arcade Physics simulation this Body belongs to.

Since: 3.0.0

<nullable> worldBounce :Phaser.Math.Vector2

Rebound following a collision with the world boundary, relative to 1. If null, bounce is used instead.

Since: 3.0.0
Default Value:
• null

x :number

The Bodys horizontal position (left edge).

• number
Since: 3.0.0

y :number

The Bodys vertical position (top edge).

• number
Since: 3.0.0

Methods

checkWorldBounds()

Checks for collisions between this Body and the world boundary and separates them.

Since: 3.0.0
Returns:

True if this Body is colliding with the world boundary.

Type
boolean

deltaAbsX()

The absolute (non-negative) change in this Body's horizontal position from the previous step.

Since: 3.0.0

The delta value.

Type
number

deltaAbsY()

The absolute (non-negative) change in this Body's vertical position from the previous step.

Since: 3.0.0

The delta value.

Type
number

deltaX()

The change in this Body's horizontal position from the previous step. This value is set during the Body's update phase.

As a Body can update multiple times per step this may not hold the final delta value for the Body. In this case, please see the deltaXFinal method.

Since: 3.0.0

The delta value.

Type
number

deltaXFinal()

The change in this Body's horizontal position from the previous game update.

This value is set during the postUpdate phase and takes into account the deltaMax and final position of the Body.

Because this value is not calculated until postUpdate, you must listen for it during a Scene POST_UPDATE or RENDER event, and not in update, as it will not be calculated by that point. If you do use these values in update they will represent the delta from the previous game frame.

Since: 3.22.0
Returns:

The final delta x value.

Type
number

deltaY()

The change in this Body's vertical position from the previous step. This value is set during the Body's update phase.

As a Body can update multiple times per step this may not hold the final delta value for the Body. In this case, please see the deltaYFinal method.

Since: 3.0.0

The delta value.

Type
number

deltaYFinal()

The change in this Body's vertical position from the previous game update.

This value is set during the postUpdate phase and takes into account the deltaMax and final position of the Body.

Because this value is not calculated until postUpdate, you must listen for it during a Scene POST_UPDATE or RENDER event, and not in update, as it will not be calculated by that point. If you do use these values in update they will represent the delta from the previous game frame.

Since: 3.22.0
Returns:

The final delta y value.

Type
number

deltaZ()

The change in this Body's rotation from the previous step, in degrees.

Since: 3.0.0

The delta value.

Type
number

destroy()

Disables this Body and marks it for deletion by the simulation.

Since: 3.0.0

drawDebug(graphic)

Draws this Body and its velocity, if enabled.

Parameters:
Name Type Description
graphic Phaser.GameObjects.Graphics

The Graphics object to draw on.

Since: 3.0.0

getBounds(obj)

Copies the coordinates of this Body's edges into an object.

Parameters:
Name Type Description

An object to copy the values into.

Since: 3.0.0
Returns:
• An object with {x, y, right, bottom}.
Type

hitTest(x, y)

Tests if the coordinates are within this Body.

Parameters:
Name Type Description
x number

The horizontal coordinate.

y number

The vertical coordinate.

Since: 3.0.0
Returns:

True if (x, y) is within this Body.

Type
boolean

onCeiling()

Whether this Body is touching a tile or the world boundary while moving up.

Since: 3.0.0
See:
Returns:

True if touching.

Type
boolean

onFloor()

Whether this Body is touching a tile or the world boundary while moving down.

Since: 3.0.0
See:
Returns:

True if touching.

Type
boolean

onWall()

Whether this Body is touching a tile or the world boundary while moving left or right.

Since: 3.0.0
See:
Returns:

True if touching.

Type
boolean

postUpdate()

Feeds the Body results back into the parent Game Object.

This method is called every game frame, regardless if the world steps or not.

Since: 3.0.0

preUpdate(willStep, delta)

Syncs the position body position with the parent Game Object.

This method is called every game frame, regardless if the world steps or not.

Parameters:
Name Type Description
willStep boolean

Will this Body run an update as well?

delta number

The delta time, in seconds, elapsed since the last frame.

Since: 3.17.0

processX(x [, vx] [, left] [, right])

This is an internal handler, called by the ProcessX function as part of the collision step. You should almost never call this directly.

Parameters:
Name Type Argument Description
x number

The amount to add to the Body position.

vx number <optional>

The amount to add to the Body velocity.

left boolean <optional>

Set the blocked.left value?

right boolean <optional>

Set the blocked.right value?

Since: 3.50.0

processY(y [, vy] [, up] [, down])

This is an internal handler, called by the ProcessY function as part of the collision step. You should almost never call this directly.

Parameters:
Name Type Argument Description
y number

The amount to add to the Body position.

vy number <optional>

The amount to add to the Body velocity.

up boolean <optional>

Set the blocked.up value?

down boolean <optional>

Set the blocked.down value?

Since: 3.50.0

reset(x, y)

Sets this Body's parent Game Object to the given coordinates and resets this Body at the new coordinates. If the Body had any velocity or acceleration it is lost as a result of calling this.

Parameters:
Name Type Description
x number

The horizontal position to place the Game Object.

y number

The vertical position to place the Game Object.

Since: 3.0.0

resetFlags( [clear])

Prepares the Body for a physics step by resetting the wasTouching, touching and blocked states.

This method is only called if the physics world is going to run a step this frame.

Parameters:
Name Type Argument Default Description
clear boolean <optional>
false

Set the wasTouching values to their defaults.

Since: 3.18.0

setAcceleration(x, y)

Sets the Body's acceleration.

Parameters:
Name Type Description
x number

The horizontal component, in pixels per second squared.

y number

The vertical component, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setAccelerationX(value)

Sets the Body's horizontal acceleration.

Parameters:
Name Type Description
value number

The acceleration, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setAccelerationY(value)

Sets the Body's vertical acceleration.

Parameters:
Name Type Description
value number

The acceleration, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setAllowDrag( [value])

Enables or disables drag.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

true to allow drag on this body, or false to disable it.

Since: 3.9.0
See:
Returns:

This Body object.

Type

setAllowGravity( [value])

Enables or disables gravity's effect on this Body.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

true to allow gravity on this body, or false to disable it.

Since: 3.9.0
See:
Returns:

This Body object.

Type

setAllowRotation( [value])

Enables or disables rotation.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

true to allow rotation on this body, or false to disable it.

Since: 3.9.0
See:
Returns:

This Body object.

Type

setAngularAcceleration(value)

Sets the Body's angular acceleration.

Parameters:
Name Type Description
value number

The acceleration, in degrees per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setAngularDrag(value)

Sets the Body's angular drag.

Parameters:
Name Type Description
value number

The drag, in degrees per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setAngularVelocity(value)

Sets the Body's angular velocity.

Parameters:
Name Type Description
value number

The velocity, in degrees per second.

Since: 3.0.0
Returns:

This Body object.

Type

setBounce(x, y)

Sets the Body's bounce.

Parameters:
Name Type Description
x number

The horizontal bounce, relative to 1.

y number

The vertical bounce, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setBounceX(value)

Sets the Body's horizontal bounce.

Parameters:
Name Type Description
value number

The bounce, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setBounceY(value)

Sets the Body's vertical bounce.

Parameters:
Name Type Description
value number

The bounce, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setBoundsRectangle( [bounds])

Sets a custom collision boundary rectangle. Use if you want to have a custom boundary instead of the world boundaries.

Parameters:
Name Type Argument Description
bounds Phaser.Geom.Rectangle <optional>
<nullable>

The new boundary rectangle. Pass null to use the World bounds.

Since: 3.20
Returns:

This Body object.

Type

Sizes and positions this Body, as a circle.

Parameters:
Name Type Argument Description

The radius of the Body, in source pixels.

offsetX number <optional>

The horizontal offset of the Body from its Game Object, in source pixels.

offsetY number <optional>

The vertical offset of the Body from its Game Object, in source pixels.

Since: 3.0.0
Returns:

This Body object.

Type

setCollideWorldBounds( [value] [, bounceX] [, bounceY] [, onWorldBounds])

Sets whether this Body collides with the world boundary.

Optionally also sets the World Bounce and onWorldBounds values.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

true if the Body should collide with the world bounds, otherwise false.

bounceX number <optional>

If given this replaces the Body's worldBounce.x value.

bounceY number <optional>

If given this replaces the Body's worldBounce.y value.

onWorldBounds boolean <optional>

If given this replaces the Body's onWorldBounds value.

Since: 3.0.0
Returns:

This Body object.

Type

setDamping(value)

If this Body is using drag for deceleration this property controls how the drag is applied. If set to true drag will use a damping effect rather than a linear approach. If you are creating a game where the Body moves freely at any angle (i.e. like the way the ship moves in the game Asteroids) then you will get a far smoother and more visually correct deceleration by using damping, avoiding the axis-drift that is prone with linear deceleration.

If you enable this property then you should use far smaller drag values than with linear, as they are used as a multiplier on the velocity. Values such as 0.95 will give a nice slow deceleration, where-as smaller values, such as 0.5 will stop an object almost immediately.

Parameters:
Name Type Description
value boolean

true to use damping, or false to use drag.

Since: 3.50.0
Returns:

This Body object.

Type

setDrag(x, y)

Sets the Body's drag.

Parameters:
Name Type Description
x number

The horizontal component, in pixels per second squared.

y number

The vertical component, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setDragX(value)

Sets the Body's horizontal drag.

Parameters:
Name Type Description
value number

The drag, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setDragY(value)

Sets the Body's vertical drag.

Parameters:
Name Type Description
value number

The drag, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setEnable( [value])

Sets the Body's enable property.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

The value to assign to enable.

Since: 3.15.0
Returns:

This Body object.

Type

setFriction(x, y)

Sets the Body's friction.

Parameters:
Name Type Description
x number

The horizontal component, relative to 1.

y number

The vertical component, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setFrictionX(value)

Sets the Body's horizontal friction.

Parameters:
Name Type Description
value number

The friction value, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setFrictionY(value)

Sets the Body's vertical friction.

Parameters:
Name Type Description
value number

The friction value, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setGravity(x, y)

Sets the Body's gravity.

Parameters:
Name Type Description
x number

The horizontal component, in pixels per second squared.

y number

The vertical component, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setGravityX(value)

Sets the Body's horizontal gravity.

Parameters:
Name Type Description
value number

The gravity, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setGravityY(value)

Sets the Body's vertical gravity.

Parameters:
Name Type Description
value number

The gravity, in pixels per second squared.

Since: 3.0.0
Returns:

This Body object.

Type

setImmovable( [value])

Sets the Body's immovable property.

Parameters:
Name Type Argument Default Description
value boolean <optional>
true

The value to assign to immovable.

Since: 3.0.0
Returns:

This Body object.

Type

setMass(value)

Sets the Body's mass.

Parameters:
Name Type Description
value number

The mass value, relative to 1.

Since: 3.0.0
Returns:

This Body object.

Type

setMaxSpeed(value)

Sets the maximum speed the Body can move.

Parameters:
Name Type Description
value number

The maximum speed value, in pixels per second. Set to a negative value to disable.

Since: 3.16.0
Returns:

This Body object.

Type

setMaxVelocity(x [, y])

Sets the Body's maximum velocity.

Parameters:
Name Type Argument Default Description
x number

The horizontal velocity, in pixels per second.

y number <optional>
x

The vertical velocity, in pixels per second.

Since: 3.10.0
Returns:

This Body object.

Type

setMaxVelocityX(value)

Sets the Body's maximum horizontal velocity.

Parameters:
Name Type Description
value number

The maximum horizontal velocity, in pixels per second.

Since: 3.50.0
Returns:

This Body object.

Type

setMaxVelocityY(value)

Sets the Body's maximum vertical velocity.

Parameters:
Name Type Description
value number

The maximum vertical velocity, in pixels per second.

Since: 3.50.0
Returns:

This Body object.

Type

setOffset(x [, y])

Sets the offset of the Body's position from its Game Object's position. The Body's position isn't changed until the next preUpdate.

Parameters:
Name Type Argument Default Description
x number

The horizontal offset, in source pixels.

y number <optional>
x

The vertical offset, in source pixels.

Since: 3.0.0
Returns:

This Body object.

Type

setSize( [width] [, height] [, center])

Sizes and positions this Body, as a rectangle. Modifies the Body offset if center is true (the default). Resets the width and height to match current frame, if no width and height provided and a frame is found.

Parameters:
Name Type Argument Default Description
width number <optional>

The width of the Body in pixels. Cannot be zero. If not given, and the parent Game Object has a frame, it will use the frame width.

height number <optional>

The height of the Body in pixels. Cannot be zero. If not given, and the parent Game Object has a frame, it will use the frame height.

center boolean <optional>
true

Modify the Body's offset, placing the Body's center on its Game Object's center. Only works if the Game Object has the getCenter method.

Since: 3.0.0
Returns:

This Body object.

Type

setVelocity(x [, y])

Sets the Body's velocity.

Parameters:
Name Type Argument Default Description
x number

The horizontal velocity, in pixels per second.

y number <optional>
x

The vertical velocity, in pixels per second.

Since: 3.0.0
Returns:

This Body object.

Type

setVelocityX(value)

Sets the Body's horizontal velocity.

Parameters:
Name Type Description
value number

The velocity, in pixels per second.

Since: 3.0.0
Returns:

This Body object.

Type

setVelocityY(value)

Sets the Body's vertical velocity.

Parameters:
Name Type Description
value number

The velocity, in pixels per second.

Since: 3.0.0
Returns:

This Body object.

Type

stop()

Sets acceleration, velocity, and speed to zero.

Since: 3.0.0
Returns:

This Body object.

Type

update(delta)

Performs a single physics step and updates the body velocity, angle, speed and other properties.

This method can be called multiple times per game frame, depending on the physics step rate.

The results are synced back to the Game Object in postUpdate.

Parameters:
Name Type Description
delta number

The delta time, in seconds, elapsed since the last frame.

Since: 3.0.0

updateBounds()

Updates the Body's transform, width, height, and center from its Game Object. The Body's position isn't changed.

Since: 3.0.0

updateCenter()

Updates the Body's center from its position, width, and height.

Since: 3.0.0

updateFromGameObject()

Updates the Body's position, width, height, and center from its Game Object and offset.

You don't need to call this for Dynamic Bodies, as it happens automatically during the physics step. But you could use it if you have modified the Body offset or Game Object transform and need to immediately read the Body's new position or center.

To resynchronize the Body with its Game Object, use reset() instead.

Since: 3.24.0