new Body(sprite)
The Physics Body is linked to a single Sprite. All physics operations should be performed against the body rather than the Sprite itself. For example you can set the velocity, acceleration, bounce values etc all on the Body.
Parameters
Name | Type | Description |
---|---|---|
sprite |
Phaser.Sprite | The Sprite object this physics body belongs to. |
- Source code: physics/arcade/Body.js (Line 15)
Public Properties
-
acceleration : Phaser.Point
-
The acceleration is the rate of change of the velocity. Measured in pixels per second squared.
- Source code: physics/arcade/Body.js (Line 141)
-
allowGravity : boolean
-
Allow this Body to be influenced by gravity? Either world or local.
- Default Value
- true
- Source code: physics/arcade/Body.js (Line 152)
-
allowRotation : boolean
-
Allow this Body to be rotated? (via angularVelocity, etc)
- Default Value
- true
- Source code: physics/arcade/Body.js (Line 59)
-
[readonly] angle : number
-
The angle of the Body in radians, as calculated by its angularVelocity.
- Source code: physics/arcade/Body.js (Line 217)
-
angularAcceleration : number
-
The angular acceleration is the rate of change of the angular velocity. Measured in radians per second squared.
- Source code: physics/arcade/Body.js (Line 193)
-
angularDrag : number
-
The drag applied during the rotation of the Body.
- Source code: physics/arcade/Body.js (Line 199)
-
angularVelocity : number
-
The angular velocity controls the rotation speed of the Body. It is measured in radians per second.
- Source code: physics/arcade/Body.js (Line 187)
-
blocked : Object
-
This object is populated with boolean values when the Body collides with the World bounds or a Tile. For example if blocked.up is true then the Body cannot move up. An object containing on which faces this Body is blocked from moving, if any.
- Source code: physics/arcade/Body.js (Line 311)
-
[readonly] bottom : number
-
The bottom value of this Body (same as Body.y + Body.height)
- Source code: physics/arcade/Body.js (Line 1165)
-
bounce : Phaser.Point
-
The elasticity of the Body when colliding. bounce.x/y = 1 means full rebound, bounce.x/y = 0.5 means 50% rebound velocity.
- Source code: physics/arcade/Body.js (Line 162)
-
[readonly] center : Phaser.Point
-
The center coordinate of the Physics Body.
- Source code: physics/arcade/Body.js (Line 120)
-
checkCollision : Object
-
Set the checkCollision properties to control which directions collision is processed for this Body. For example checkCollision.up = false means it won't collide when the collision happened while moving up. An object containing allowed collision.
- Source code: physics/arcade/Body.js (Line 291)
-
collideWorldBounds : boolean
-
A Body can be set to collide against the World bounds automatically and rebound back into the World if this is set to true. Otherwise it will leave the World. Should the Body collide with the World bounds?
- Source code: physics/arcade/Body.js (Line 284)
-
customSeparateX : boolean
-
This flag allows you to disable the custom x separation that takes place by Physics.Arcade.separate. Used in combination with your own collision processHandler you can create whatever type of collision response you need. Use a custom separation system or the built-in one?
- Source code: physics/arcade/Body.js (Line 252)
-
customSeparateY : boolean
-
This flag allows you to disable the custom y separation that takes place by Physics.Arcade.separate. Used in combination with your own collision processHandler you can create whatever type of collision response you need. Use a custom separation system or the built-in one?
- Source code: physics/arcade/Body.js (Line 260)
-
deltaMax : Phaser.Point
-
The Sprite position is updated based on the delta x/y values. You can set a cap on those (both +-) using deltaMax.
- Source code: physics/arcade/Body.js (Line 136)
-
dirty : boolean
-
If this Body in a preUpdate (true) or postUpdate (false) state?
- Source code: physics/arcade/Body.js (Line 323)
-
drag : Phaser.Point
-
The drag applied to the motion of the Body.
- Source code: physics/arcade/Body.js (Line 146)
-
embedded : boolean
-
If a body is overlapping with another body, but neither of them are moving (maybe they spawned on-top of each other?) this is set to true. Body embed value.
- Source code: physics/arcade/Body.js (Line 278)
-
enable : boolean
-
A disabled body won't be checked for any form of collision or overlap or have its pre/post updates run.
- Default Value
- true
- Source code: physics/arcade/Body.js (Line 36)
-
facing : number
-
A const reference to the direction the Body is traveling or facing.
- Source code: physics/arcade/Body.js (Line 229)
-
friction : Phaser.Point
-
The amount of movement that will occur if another object 'rides' this one.
- Source code: physics/arcade/Body.js (Line 181)
-
game : Phaser.Game
-
Local reference to game.
- Source code: physics/arcade/Body.js (Line 25)
-
gravity : Phaser.Point
-
A local gravity applied to this Body. If non-zero this over rides any world gravity, unless Body.allowGravity is set to false.
- Source code: physics/arcade/Body.js (Line 157)
-
[readonly] halfHeight : number
-
The calculated height / 2 of the physics body.
- Source code: physics/arcade/Body.js (Line 114)
-
[readonly] halfWidth : number
-
The calculated width / 2 of the physics body.
- Source code: physics/arcade/Body.js (Line 108)
-
[readonly] height : number
-
The calculated height of the physics body.
- Source code: physics/arcade/Body.js (Line 84)
-
immovable : boolean
-
An immovable Body will not receive any impacts from other bodies.
- Source code: physics/arcade/Body.js (Line 235)
-
isMoving : boolean
-
Set by the
moveTo
andmoveFrom
methods.- Source code: physics/arcade/Body.js (Line 343)
-
left : number
-
The x position of the Body. The same as
Body.x
.- Source code: physics/arcade/Body.js (Line 1122)
-
mass : number
-
The mass of the Body. When two bodies collide their mass is used in the calculation to determine the exchange of velocity.
- Default Value
- 1
- Source code: physics/arcade/Body.js (Line 211)
-
maxAngular : number
-
The maximum angular velocity in radians per second that the Body can reach.
- Default Value
- 1000
- Source code: physics/arcade/Body.js (Line 205)
-
maxVelocity : Phaser.Point
-
The maximum velocity in pixels per second sq. that the Body can reach.
- Source code: physics/arcade/Body.js (Line 176)
-
movementCallback : Function
-
Optional callback. If set, invoked during the running of
moveTo
ormoveFrom
events.- Source code: physics/arcade/Body.js (Line 388)
-
movementCallbackContext : Object
-
Context in which to call the movementCallback.
- Source code: physics/arcade/Body.js (Line 393)
-
moves : boolean
-
If you have a Body that is being moved around the world via a tween or a Group motion, but its local x/y position never actually changes, then you should set Body.moves = false. Otherwise it will most likely fly off the screen. If you want the physics system to move the body around, then set moves to true. Set to true to allow the Physics system to move this Body, otherwise false to move it manually.
- Default Value
- true
- Source code: physics/arcade/Body.js (Line 244)
-
[readonly] newVelocity : Phaser.Point
-
The new velocity. Calculated during the Body.preUpdate and applied to its position.
- Source code: physics/arcade/Body.js (Line 131)
-
offset : Phaser.Point
-
The offset of the Physics Body from the Sprite x/y position.
- Source code: physics/arcade/Body.js (Line 41)
-
onMoveComplete : Phaser.Signal
-
Listen for the completion of
moveTo
ormoveFrom
events.- Source code: physics/arcade/Body.js (Line 383)
-
overlapX : number
-
When this body collides with another, the amount of overlap is stored here. The amount of horizontal overlap during the collision.
- Source code: physics/arcade/Body.js (Line 266)
-
overlapY : number
-
When this body collides with another, the amount of overlap is stored here. The amount of vertical overlap during the collision.
- Source code: physics/arcade/Body.js (Line 272)
-
[readonly] position : Phaser.Point
-
The position of the physics body.
- Source code: physics/arcade/Body.js (Line 47)
-
[readonly] preRotation : number
-
The previous rotation of the physics body.
- Source code: physics/arcade/Body.js (Line 72)
-
[readonly] prev : Phaser.Point
-
The previous position of the physics body.
- Source code: physics/arcade/Body.js (Line 53)
-
[readonly] right : number
-
The right value of this Body (same as Body.x + Body.width)
- Source code: physics/arcade/Body.js (Line 1136)
-
rotation : number
-
An Arcade Physics Body can have angularVelocity and angularAcceleration. Please understand that the collision Body itself never rotates, it is always axis-aligned. However these values are passed up to the parent Sprite and updates its rotation.
- Source code: physics/arcade/Body.js (Line 66)
-
skipQuadTree : boolean
-
If true and you collide this Sprite against a Group, it will disable the collision check from using a QuadTree.
- Source code: physics/arcade/Body.js (Line 328)
-
[readonly] sourceHeight : number
-
The un-scaled original size.
- Source code: physics/arcade/Body.js (Line 96)
-
[readonly] sourceWidth : number
-
The un-scaled original size.
- Source code: physics/arcade/Body.js (Line 90)
-
[readonly] speed : number
-
The speed of the Body as calculated by its velocity.
- Source code: physics/arcade/Body.js (Line 223)
-
sprite : Phaser.Sprite
-
Reference to the parent Sprite.
- Source code: physics/arcade/Body.js (Line 20)
-
stopVelocityOnCollide : boolean
-
Set by the
moveTo
andmoveFrom
methods.- Source code: physics/arcade/Body.js (Line 348)
-
syncBounds : boolean
-
If true the Body will check itself against the Sprite.getBounds() dimensions and adjust its width and height accordingly. If false it will compare its dimensions against the Sprite scale instead, and adjust its width height if the scale has changed. Typically you would need to enable syncBounds if your sprite is the child of a responsive display object such as a FlexLayer, or in any situation where the Sprite scale doesn't change, but its parents scale is effecting the dimensions regardless.
- Source code: physics/arcade/Body.js (Line 338)
-
tilePadding : Phaser.Point
-
If this is an especially small or fast moving object then it can sometimes skip over tilemap collisions if it moves through a tile in a step. Set this padding value to add extra padding to its bounds. tilePadding.x applied to its width, y to its height. Extra padding to be added to this sprite's dimensions when checking for tile collision.
- Source code: physics/arcade/Body.js (Line 318)
-
top : number
-
The y position of the Body. The same as
Body.y
.- Source code: physics/arcade/Body.js (Line 1151)
-
touching : Object
-
This object is populated with boolean values when the Body collides with another. touching.up = true means the collision happened to the top of this Body for example. An object containing touching results.
- Source code: physics/arcade/Body.js (Line 298)
-
type : number
-
The type of physics system this body belongs to.
- Source code: physics/arcade/Body.js (Line 30)
-
velocity : Phaser.Point
-
The velocity, or rate of change in speed of the Body. Measured in pixels per second.
- Source code: physics/arcade/Body.js (Line 125)
-
wasTouching : Object
-
This object is populated with previous touching values from the bodies previous collision. An object containing previous touching results.
- Source code: physics/arcade/Body.js (Line 304)
-
[readonly] width : number
-
The calculated width of the physics body.
- Source code: physics/arcade/Body.js (Line 78)
-
worldBounce : Phaser.Point
-
The elasticity of the Body when colliding with the World bounds. By default this property is
null
, in which caseBody.bounce
is used instead. Set this property to a Phaser.Point object in order to enable a World bounds specific bounce value.- Source code: physics/arcade/Body.js (Line 170)
-
x : number
-
The x position.
- Source code: physics/arcade/Body.js (Line 1180)
-
y : number
-
The y position.
- Source code: physics/arcade/Body.js (Line 1199)
Public Methods
-
<internal> checkWorldBounds()
-
Internal method.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: physics/arcade/Body.js (Line 713)
-
deltaAbsX() → {number}
-
Returns the absolute delta x value.
Returns
number -The absolute delta value.
- Source code: physics/arcade/Body.js (Line 1040)
-
deltaAbsY() → {number}
-
Returns the absolute delta y value.
Returns
number -The absolute delta value.
- Source code: physics/arcade/Body.js (Line 1052)
-
deltaX() → {number}
-
Returns the delta x value. The difference between Body.x now and in the previous step.
Returns
number -The delta value. Positive if the motion was to the right, negative if to the left.
- Source code: physics/arcade/Body.js (Line 1064)
-
deltaY() → {number}
-
Returns the delta y value. The difference between Body.y now and in the previous step.
Returns
number -The delta value. Positive if the motion was downwards, negative if upwards.
- Source code: physics/arcade/Body.js (Line 1076)
-
deltaZ() → {number}
-
Returns the delta z value. The difference between Body.rotation now and in the previous step.
Returns
number -The delta value. Positive if the motion was clockwise, negative if anti-clockwise.
- Source code: physics/arcade/Body.js (Line 1088)
-
destroy()
-
Destroys this Body.
First it calls Group.removeFromHash if the Game Object this Body belongs to is part of a Group. Then it nulls the Game Objects body reference, and nulls this Body.sprite reference.
- Source code: physics/arcade/Body.js (Line 1100)
-
hitTest(x, y) → {boolean}
-
Tests if a world point lies within this Body.
Parameters
Name Type Description x
number The world x coordinate to test.
y
number The world y coordinate to test.
Returns
boolean -True if the given coordinates are inside this Body, otherwise false.
- Source code: physics/arcade/Body.js (Line 990)
-
moveFrom(duration, speed, direction) → {boolean}
-
Note: This method is experimental, and may be changed or removed in a future release.
This method moves the Body in the given direction, for the duration specified. It works by setting the velocity on the Body, and an internal timer, and then monitoring the duration each frame. When the duration is up the movement is stopped and the
Body.onMoveComplete
signal is dispatched.Movement also stops if the Body collides or overlaps with any other Body.
You can control if the velocity should be reset to zero on collision, by using the property
Body.stopVelocityOnCollide
.Stop the movement at any time by calling
Body.stopMovement
.You can optionally set a speed in pixels per second. If not specified it will use the current
Body.speed
value. If this is zero, the function will return false.Please note that due to browser timings you should allow for a variance in when the duration will actually expire. Depending on system it may be as much as +- 50ms. Also this method doesn't take into consideration any other forces acting on the Body, such as Gravity, drag or maxVelocity, all of which may impact the movement.
Parameters
Name Type Argument Description duration
integer The duration of the movement, in ms.
speed
integer <optional>
The speed of the movement, in pixels per second. If not provided
Body.speed
is used.direction
integer <optional>
The angle of movement. If not provided
Body.angle
is used.Returns
boolean -True if the movement successfully started, otherwise false.
- Source code: physics/arcade/Body.js (Line 756)
-
moveTo(duration, distance, direction) → {boolean}
-
Note: This method is experimental, and may be changed or removed in a future release.
This method moves the Body in the given direction, for the duration specified. It works by setting the velocity on the Body, and an internal distance counter. The distance is monitored each frame. When the distance equals the distance specified in this call, the movement is stopped, and the
Body.onMoveComplete
signal is dispatched.Movement also stops if the Body collides or overlaps with any other Body.
You can control if the velocity should be reset to zero on collision, by using the property
Body.stopVelocityOnCollide
.Stop the movement at any time by calling
Body.stopMovement
.Please note that due to browser timings you should allow for a variance in when the distance will actually expire.
Note: This method doesn't take into consideration any other forces acting on the Body, such as Gravity, drag or maxVelocity, all of which may impact the movement.
Parameters
Name Type Argument Description duration
integer The duration of the movement, in ms.
distance
integer The distance, in pixels, the Body will move.
direction
integer <optional>
The angle of movement. If not provided
Body.angle
is used.Returns
boolean -True if the movement successfully started, otherwise false.
- Source code: physics/arcade/Body.js (Line 830)
-
onFloor() → {boolean}
-
Returns true if the bottom of this Body is in contact with either the world bounds or a tile.
Returns
boolean -True if in contact with either the world bounds or a tile.
- Source code: physics/arcade/Body.js (Line 1004)
-
onTop() → {boolean}
-
Returns true if the top of this Body is in contact with either the world bounds or a tile.
Returns
boolean -True if in contact with either the world bounds or a tile.
- Source code: physics/arcade/Body.js (Line 1016)
-
onWall() → {boolean}
-
Returns true if either side of this Body is in contact with either the world bounds or a tile.
Returns
boolean -True if in contact with either the world bounds or a tile.
- Source code: physics/arcade/Body.js (Line 1028)
-
<internal> postUpdate()
-
Internal method.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: physics/arcade/Body.js (Line 627)
-
<internal> preUpdate()
-
Internal method.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: physics/arcade/Body.js (Line 473)
-
render(context, body, color, filled)
-
Render Sprite Body.
Parameters
Name Type Argument Default Description context
object The context to render to.
body
Phaser.Physics.Arcade.Body The Body to render the info of.
color
string <optional>
'rgba(0,255,0,0.4)' color of the debug info to be rendered. (format is css color string).
filled
boolean <optional>
true Render the objected as a filled (default, true) or a stroked (false)
- Source code: physics/arcade/Body.js (Line 1219)
-
renderBodyInfo(body, x, y, color)
-
Render Sprite Body Physics Data as text.
Parameters
Name Type Argument Default Description body
Phaser.Physics.Arcade.Body The Body to render the info of.
x
number X position of the debug info to be rendered.
y
number Y position of the debug info to be rendered.
color
string <optional>
'rgb(255,255,255)' color of the debug info to be rendered. (format is css color string).
- Source code: physics/arcade/Body.js (Line 1247)
-
reset(x, y)
-
Resets all Body values (velocity, acceleration, rotation, etc)
Parameters
Name Type Description x
number The new x position of the Body.
y
number The new y position of the Body.
- Source code: physics/arcade/Body.js (Line 955)
-
setSize(width, height, offsetX, offsetY)
-
You can modify the size of the physics Body to be any dimension you need. This allows you to make it smaller, or larger, than the parent Sprite. You can also control the x and y offset of the Body. This is the position of the Body relative to the top-left of the Sprite texture.
For example: If you have a Sprite with a texture that is 80x100 in size, and you want the physics body to be 32x32 pixels in the middle of the texture, you would do:
setSize(32, 32, 24, 34)
Where the first two parameters is the new Body size (32x32 pixels). 24 is the horizontal offset of the Body from the top-left of the Sprites texture, and 34 is the vertical offset.
Parameters
Name Type Argument Description width
number The width of the Body.
height
number The height of the Body.
offsetX
number <optional>
The X offset of the Body from the top-left of the Sprites texture.
offsetY
number <optional>
The Y offset of the Body from the top-left of the Sprites texture.
- Source code: physics/arcade/Body.js (Line 917)
-
stopMovement(stopVelocity)
-
If this Body is moving as a result of a call to
moveTo
ormoveFrom
(i.e. it has Body.isMoving true), then calling this method will stop the movement before either the duration or distance counters expire.The
onMoveComplete
signal is dispatched.Parameters
Name Type Argument Description stopVelocity
boolean <optional>
Should the Body.velocity be set to zero?
- Source code: physics/arcade/Body.js (Line 599)
-
<internal> updateBounds()
-
Internal method.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: physics/arcade/Body.js (Line 429)
-
<internal> updateMovement()
-
Internal method.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: physics/arcade/Body.js (Line 558)